永远向前

聚沙成塔 集腋成裘

Mysql主从备份记录

master在192.168.140.123上,slave在124上 //第一部分、先配置master 1、安装 #先删除默认安装的 mysql lib 库。 yum remove mysql* yum remove mariadb* #通过 RPM 命令进行安装 unzip MySQL-5.6....

2019-02-20 15:32:18

阅读数 112

评论数 0

ConcurrentHashMap 原理

HashMap在多线程中可能会出现死循环的问题,因而再多线程情况下需要使用其他替代方案。 1、选择 HashTable是一个方案,不过HashTable会对整个结构加锁(synchronized),在高并发访问情况下,效率很低,因而基本被废弃。 另一个就是ConcurrentHashMap了...

2018-06-10 21:42:39

阅读数 64

评论数 0

LockSupport原理

1、使用 LockSupport和CAS操作是java并发包中很多控制机制的基础,都是通过UNSAFE来实现的。 LockSupport是基本的线程阻塞的原语,通过park和unpark来实现线程的阻塞和唤醒。LockSupport的每个使用它的线程都与一个许可(permit)有关,permi...

2018-06-09 10:09:35

阅读数 302

评论数 0

循环栅栏CyclicBarrier的使用及原理

1、使用 直接await即可。 //指定等待数量 public CyclicBarrier(int parties) //等待,触发归0则往下走 int await() 2、原理 使用ReentrantLock及相应Condition实现等待/阻塞/唤醒。 主要实现方法为 pr...

2018-06-09 09:51:42

阅读数 201

评论数 0

CountDownLatch原理及使用

1、使用 通常用于多线程之间的等待 常用函数 //用于state-1 void countDown() //主线程等待子线程做事情。 void await() throws InterruptedException 2、原理 原理就是借助AQS的等待队列,代码很简单,这里不赘述...

2018-06-09 09:45:20

阅读数 154

评论数 0

ReentrantReadWriteLock详解

1、用法 //初始化读锁和写锁 ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); ReentrantReadWriteLock.ReadLock rlock = rwl.readLock(); ReentrantReadW...

2018-06-09 09:37:47

阅读数 65

评论数 0

Semaphore详解

1、方法 public void acquire() public void acquireUninterruptibly() public void release() public boolean tryAcquire(int permits) 2、原理 Semaphore原理比较...

2018-06-05 22:10:53

阅读数 150

评论数 0

ReentrantLock使用和原理(AQS简述)

在开发过程中,synchronized是最简单的同步控制方法,在通常情况下是够用的,但synchronized时不响应中断,而且有时候,我们需要灵活的来控制加解锁。这时候可以使用ReentrantLock。 在以前的版本中,synchronized效率是远远低于ReentrantLock,后来经...

2018-06-03 21:56:00

阅读数 370

评论数 0

ThreadLocal

所谓ThreadLocal,就是每个线程人手一只笔,线程本地存储。 1、使用 ThreadLocal的常规用法是get和set方法,比如可能这样用 static ThreadLocal<Object> tlObj = new ThreadLoca...

2018-05-05 09:13:56

阅读数 55

评论数 0

logback总结

spring-boot集成logback非常简单,只写一个logback.xml即可。 1、根节点configuration <configuration debug="false" scan="true&...

2018-04-24 20:01:18

阅读数 76

评论数 0

设计模式一览

最近总有想写点东西的冲动,想来想去,总结下设计模式吧,自己写一下,不容易忘掉。 1、策略模式 所谓策略模式,是将算法和策略进行分割的一种模式。之所以这样,其实是基于一种思想,将变化的部分和不变的部分分割开来,如果以后需要修改程序,或者需求变更,只需要修改这部分变化的部分即可,如果有多...

2018-04-05 12:17:34

阅读数 91

评论数 0

synchronized总结

用法: a、指定加锁对象,对给定对象加锁; synchronized(a){ ... } b、直接作用于实例函数,对指定实例加锁; public synchronized void f(){ ... } c、直接作用于静态函数,对当前类加锁; public st...

2018-01-07 12:59:50

阅读数 84

评论数 0

线程详解

线程状态 public enum State { // 刚创建线程.还未执行 NEW, //线程已启动,或在等待分配cpu时间片 RUNNABLE, //线程阻塞状态,等待进入临界区,通过synchroniz...

2018-01-07 11:32:40

阅读数 76

评论数 0

HashMap总结

本文所使用的源码来自jdk1.8 1、存储 HashMap之所以访问很快,内部机制是通过数组+链表(链表长度大于8则转为红黑树)来实现的。 HashMap中最顶层的结构是哈希桶数组:transient Node<K,V>[] table;其中,Node即表示数组的一个元素,也是一...

2017-10-08 20:01:14

阅读数 148

评论数 0

webpack细节点记录

1、 __dirname 获得当前文件所在目录的完整目录名 __filename 当前模块文件的带有完整绝对路径的文件名2、path.joinpath.join('/foo', 'bar', 'baz/asdf', 'quux', '..') // returns '/foo/bar/baz/...

2017-06-29 16:53:41

阅读数 112

评论数 0

MySQL提示密码过期

java连接mysql(5.6),提示如下Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Could not connect: Your password has expired. To log in you must c...

2017-06-28 14:34:15

阅读数 429

评论数 0

swagger2

swagger需要导入swagger相关页面,比较麻烦。 swagger2更近一步,只需要做几个配置即可,更简单,更易用。项目基于spring-boot实现,下面指定配置点pom.xml依赖 <!-- swagger 框架依赖 --> <depe...

2017-06-27 20:19:47

阅读数 989

评论数 0

swagger

swagger集成

2017-04-26 20:31:50

阅读数 611

评论数 0

获取Connection的方法

1、实际项目用的spring-mvc + jpa + hibernate,有需求来读取表名和列名。 方法一://有效,不过getConnectionProvider()是@Deprecated的,不建议用 Session session = (Session)em.getDelegate(); ...

2017-04-26 16:45:24

阅读数 1904

评论数 0

systemctl开启启动redis

redis.service[Unit] Description=redis service After=network.target[Service] Type=forking //不加这句回一直重启 ExecStart=/root/redis-start.sh Restart=always ...

2017-03-21 14:16:41

阅读数 1688

评论数 0

提示
确定要删除当前文章?
取消 删除