随笔分类 - java底层
Phaser
摘要:Phaser 是什么 pahser是一个可以重复使用的同步屏障。应用包括但不限于于如下场景:每个线程有n个方法,希望在一部分线程的第i个方法执行完成后,再统一调用第i+1个方法。可以在一组线程同时注册的时候,设置一个阈值,当线程数到达数量达到阈值后,由phaser调用下一个方法。可以通过注册和注销修
阅读全文
CyclicBarrier
摘要:CyclicBarrier基本功能 CyclicBarrier 允许一组线程,全部等待彼此都到达共同的屏障点,然后同时执行下一项操作。在某一个线程未到达之前,这些线程必须彼此等待。等待数量满足parties 值以后,执行CyclicBarrier 构造时设定的方法。也可以不传后续方法,那么等待数量满
阅读全文
CountDownLatch
摘要:CountDownLatch是什么 countDownLatch 可以实现一个或者多个线程等待,直到其他线程中的一组操作完成的同步。countDownLatch 在初始化的时候。设定一个值,该值为0以后,释放被await阻塞的线程,这个值无法被重置。一个countDownLatch可以由一个线程阻塞
阅读全文
ReentrantLock -入门
摘要:ReentrantLock 是什么 重入锁,是一个可以在持有相同锁的执行代码之间进行互斥的锁。具有与使用synchronized 方法和语句时同样的基本行为和语义,但是功能更多,也更加灵活。一个ReentrantLock 由一个线程调用lock方法获取,如果锁没有被另外一个线程锁定。当前线程成功将锁
阅读全文
java多线程_Java中的引用类型
摘要:java中的引用分为4种,分别是:1.强引用;2.软引用;3.弱引用;4.虚引用。四种引用分别有各自的特点,下面分别通过代码对四种类型的引用进行一下测试。 1.强引用 强引用是我们平时最常用的一种引用类型。在对象被引用的时候,不会被gc的垃圾回收器回收。当没有引用时,堆中对象会被回收。 示范代码:
阅读全文