/** * @描述: 阻塞队列 ,先放进来先取走 * 缓冲区:隔离效果,平均每一秒钟收一个短信,放在池子里 * 可以放可以取,当满了不能放,取走了之后才能取 * 当空的时候不能取,只有放了之后才能取 * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */... ...
分类:
其他好文 时间:
2017-05-25 11:48:25
阅读次数:
161
/** * * @描述: 倒计时器 . * 犹如倒计时计数器,调用CountDownLatch对象的countDown方法就将计数器减1,当计算器为0的时候 * 则所有等待者或单个等待者开始执行 * @作者: Wnj . * @创建时间: 2017年5月15日 . * @版本: 1.0 . */ p... ...
分类:
编程语言 时间:
2017-05-25 11:43:53
阅读次数:
144
/** * * @描述: 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥,这是由JVM自己控制的,可以同时读,但不能同时写 那就上读锁; * 如果你的代码只读数据,可以有很多人同时读,但不能同时写那就上读锁. * 如果你的代码修改数据,只能有一个人在写,且不能同时写,那就上写... ...
分类:
其他好文 时间:
2017-05-25 11:41:50
阅读次数:
162
/** * * @描述: Semaphore实现信号灯 . * Semaphore可以维护当前访问自身的线程个数,并提供了同步机制,使用Semaphore可以控制同时访问资源的线程个数,例如实现一个文件允许 * * 等待的线程可以是随机获取优先机会,也可以是按照先来后到的顺序获取机会,这取决于构造S... ...
分类:
其他好文 时间:
2017-05-25 11:40:48
阅读次数:
120
/** * * @描述: 同步工具 * 表示大家彼此等待,大家集合好后才开始出发,分散活动后又在指点地点集合碰合 . * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */ public class CyclicBarrierTest { public ... ...
分类:
其他好文 时间:
2017-05-25 11:40:16
阅读次数:
105
CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器",Java并发包中类似的容器还有CopyOnWriteSet。本文会对C ...
分类:
其他好文 时间:
2017-05-21 16:08:29
阅读次数:
169
CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器",Java并发包中类似的容器还有CopyOnWriteSet。本文会对C ...
分类:
其他好文 时间:
2017-05-21 16:08:00
阅读次数:
161
为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效地进行线程控制。他们都在java.util.concurrent包中,是JDK并发包的核心。其中有一个比较重要的类:Executors,它扮演着线程工厂的角色,我们通过Executors可以创建特定功能的线程池。Exec... ...
分类:
编程语言 时间:
2017-05-18 01:19:47
阅读次数:
258
ConcurrentHashMap实现原理 ConcurrentHashMap源码分析 总结 ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),Concur ...
分类:
其他好文 时间:
2017-05-14 19:44:45
阅读次数:
265
一、核心线程池内部实现 为了能够更好地控制多线程,JDK提供了一套Executor框架,帮助开发人员有效地进行线程控制,其本质就是一个线程池。它的核心成员如图 以上成员均在java.util.concurrent包中,是JDK并发包的核心类。其中ThreadPoolExecutor表示一个线程池。E ...
分类:
编程语言 时间:
2017-05-14 01:07:13
阅读次数:
300