concurrent
ploter
背上梁山
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
synchronized和lock的区别
ReentrantLock在加锁和内存上提供的语义与内置锁相同,林外它提供了一些其他功能,包括定时的锁等待、可中断的锁等待、公平性,以及实现非块结构的加锁。与显示锁相比,内置锁仍然具有很大的优势。内置锁为许多开发人员所熟悉,并且简洁紧凑。ReentrantLock的危险性比同步机制要高,如果忘记在finally块中调用unlock,,虽然代码表面能正常运行,但实际上已经埋下了一课定时炸弹。...转载 2018-07-19 21:41:45 · 203 阅读 · 0 评论 -
CountDownLatch和CyclicBarrier的区别
CountDownLatch作用:一个或多个线程,等待另外一个或多个线程完成某件事情后才能继续执行CyclicBarrier作用:多个线程之间相互等待,任何一个线程完成之前,所有线程都必须等待。CountDownLatch的主要弊端是计数不可重置,所以想要有N个屏障就要有N个CountDownLatch对象,是比较复杂的而CyclicBarrier是可以重置计数的。...转载 2018-07-25 20:44:33 · 182 阅读 · 0 评论 -
线程池ThreadPoolExecutor的介绍
线程池最常用的构造方法是ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)corePoolSize:池中所保存的线程数,就是核心池的大小。maximumPoolSize:...转载 2018-08-11 23:25:50 · 192 阅读 · 0 评论 -
多线程单例模式的实现
public class MyObject { private static MyObject myObject; private MyObject() { } synchronized public static MyObject getInstance() { try { if (myObject != null) { } else { // 模拟在...原创 2018-08-12 14:55:12 · 673 阅读 · 0 评论 -
ThreadLocal源码分析
首先来看ThreadLocal两个最重要的方法,set()和get()。public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) map.set(this, ...原创 2018-08-13 17:02:30 · 140 阅读 · 0 评论
分享