![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
会飞的小猪象
从点滴做起。
展开
-
JUC中CountDownLatch、CyclicBarrier和Semaphore
一、CountDownLatch(倒计时锁存器) CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供了一个构造器:1 public CountDownLat...原创 2018-07-23 16:59:34 · 260 阅读 · 0 评论 -
为什么volatile不能保证原子性而Atomic可以?
转自:http://www.cnblogs.com/Mainz/p/3556430.html在Java中long赋值不是原子操作,因为先写32位,再写后32位,分两步操作,而AtomicLong赋值是原子操作,为什么?为什么volatile能替代简单的锁,却不能保证原子性?这里面涉及volatile,是java中的一个我觉得这个词在Java规范中从未被解释清楚的神奇关键词,在Sun的JDK官方...转载 2018-08-06 15:55:45 · 129 阅读 · 0 评论 -
如何关闭一个线程
当一个线程的代码执行完或者有异常就会关闭线程,但是如果手动关闭的话,有stop()方法,但是慎用,因为不是线程安全的。如果正确的关闭呢,可以采用用一个变量来控制:public class StopThread implements Runnable{ public static boolean isStop = true; public static void ...原创 2018-08-06 15:57:11 · 1603 阅读 · 0 评论