concurrent 二

闭锁:CountDownLatch 

使用场景   闭锁 当条件满足时执行下一步操作

/**
 * 需要等待多少个线程 设置为多少
 */
private static CountDownLatch latch = new CountDownLatch(3);

参考博客:写的挺好的

栅栏:阻塞一组线程直到某个事件发生

和闭锁的设置规则一样 需要等待多少线程就设置为多少

CyclicBarrier cyclicBarrier = new CyclicBarrier(3);

栅栏与闭锁的关键区别在于,所有的线程必须同时到达栅栏位置,才能继续执行。闭锁用于等待事件,而栅栏用于等待其他线程。

参考博客

信号量:就是在资源不够的时候通过信号量来控制,拿到信号量的线程就可以访问。用来保护一个或者多个共享资源的访问。

参考博客

同步容器:

简单点说就是老版本的线程安全集合 如:Vector,Hashtable直接用synchronized修饰的

并发容器:如:ConcurrentHashMap  采用多段锁来提供性能

CopyOnWriteArrayList,CopyOnWriteArraySet,ArrayBlockingQueue等等。

简单介绍一下,以后看完源码在来补充。

努力吧,皮卡丘





猜你喜欢

转载自blog.csdn.net/yidan7063/article/details/80283603