
并发编程
文章平均质量分 60
无名居
这个作者很懒,什么都没留下…
展开
-
java并发编程--线程封闭
java并发编程–线程封闭 线程封闭有三种方式:Ad-hoc线程封闭、栈封闭、ThreadLocal类;其中Ad-hoc线程封闭一般由程序员自己实现,很少用,暂不介绍。 加粗 Ctrl + B 插入代码 Ctrl + K 栈封闭 将对象封闭在局部变量中,只有局部变量才能访问,保证线程安全。 下面我们来看一段简单的代码 public class Ani...原创 2018-04-08 16:41:53 · 331 阅读 · 0 评论 -
原子操作原理
处理器实现原子操作 使用总线锁保证原子性 我们知道处理器存在内存与缓存,当线程读取数据时,先会去取缓存中的数据,若没有再去内存中拿取数据,这样就会发生缓存中与内存中的数据不一致,从而导致不正确的结果。 为了得到正确的结果,可以在总线上加锁,也就是在内存与缓存上都加锁,也就是给处理器一个#LOCK信号,这样线程就可以独占锁 使用缓存锁保证原子性 锁的粒度减少 Java实现原子操作 使用...原创 2018-12-27 22:43:38 · 318 阅读 · 0 评论 -
Java并发工具-CountDownLatch、CyclicBarrier、Semaphore
CountDownLatch等待线程完成 CountDownLatch是一个等待所有线程完成的工具,类似join()方法,初始化的时候会调用构造器传递线程个数,调用countDown方法将count值减一,调用await方法会等待知道count=0才会通过。写一个简单的例子方便理解 import java.util.concurrent.CountDownLatch; /** * countD...原创 2019-01-25 10:22:45 · 286 阅读 · 0 评论 -
java concurrent包下的锁
concurrent包下锁的种类 接口:Lock、ReadWriteLock、Condition 实现类:ReentrantLock、ReentrantReadWriteLock、StampedLock 抽象类:AbstractQueuedSychronizer 简单梳理下锁的关系ReentrantLock实现了Lock接口,并内部实现了AQS同步器;ReentrantReadWriteLoc...原创 2019-01-20 18:36:11 · 549 阅读 · 0 评论