![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA多线程
weixin_39722651
这个作者很懒,什么都没留下…
展开
-
java多线程之ThreadLocal
ThreadLocal是每个线程的“独有”空间,可以存放线程的独有变量。 如下例,分别使用ThreadLocal和ArrayList存储两个线程的变量: import java.util.ArrayList; import java.util.List; public class ThreadLocalDemo { static ThreadLocal<List> threadLoca...原创 2019-03-03 18:40:57 · 225 阅读 · 0 评论 -
JAVA多线程之Lock
synchronized关键字实现的锁不容易控制,java提供了Lock接口来实现锁机制。 两者的主要区别在于: 1)synchronized是java内置关键字,而Lock是接口; 2)synchronized可以自动的释放锁,比如代码执行完成,出现异常等,也可以通过wait()方法手动释放锁;但是Lock需要用unlock方法手动释放锁。 3)synchronized锁可重入,不可判断,非公...原创 2019-03-04 09:56:38 · 134 阅读 · 0 评论 -
两种线程安全的单例模式(笔记)
双重校验锁 //双重校验锁 public class SingletonDemo { private static volatile SingletonDemo singleton; private SingletonDemo(){} public static SingletonDemo getInstance(){ if(singleton ==...原创 2019-03-16 11:26:48 · 155 阅读 · 0 评论 -
JAVA多线程之CountDownLatch和CyclicBarrier
1 CountDownLatch (1)countDownLatch等待指定数量线程结束后,进行下一步; (2)countDownLatch构造函数初始化一个volatile变量,countDown()方法,使用了CAS,和AutomicInteger的增减方法相同; (3)await方法阻塞当前线程,直到getCount值为0,如果不调用countDown方法,getCount的值部位0,那...原创 2019-03-08 11:29:25 · 125 阅读 · 0 评论