LockSupport

1. 简介为构建锁和同步器提供基本的线程阻塞唤醒原语,LockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程。类似于wait和notify,类似于await和signal。 2. 使用示例1234567891011121314151617181920212223242526272829303132333435363738394041424344454647...

并发编程

Condition

Condition1. 使用Condition实现等待通知机制12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455public class ConTest { final Lock lock = new ReentrantLoc...

并发编程

CompleteFeature

1. FeatureTaskFutureTask是Runnable, Future接口的实现类; 1234567891011121314151617181920212223242526{ FutureTask<String> futureTask = new FutureTask<String>( () -> { Syst...

并发编程

Interrupt

如何中断一个线程?1. while循环判断interrupt标识1234567891011121314151617181920212223242526272829{ Thread t1 = new Thread(() -> { while (true) { if(Thread.currentThread().isI...

并发编程

AQS DEMO

通过一些demo ,尝试理解juc包下的一些类的用法; 1. 使用ReentrantLock进行同步说明:开启四个线程,每个线程首先去执行lock方法后,睡眠不同的时间后,最后执行unlock方法。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525...

并发编程

原子类

原子类1. LongAdder2. LongAccumulator123456789101112131415161718192021{ LongAdder longAdder = new LongAdder(); longAdder.increment(); longAdder.increment(); longAdder.increment(); S...

并发编程

CAS

CAS1. ABA问题123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051{ static AtomicInteger atomicInteger = new AtomicInteger(100); static AtomicStampe...

并发编程

AQS应用

1. CountDownLatchlatch 的中文意思是门栓、栅栏,CountDownLatch 基于 AQS 的共享模式的使用 1.1 使用例子 假设我们有 N ( N > 0 ) 个任务,那么我们会用 N 来初始化一个 CountDownLatch,然后将这个 latch 的引用传递到各个线程中,在每个线程完成了任务后,调用 latch.countDown() 代表完成了一个任务...

并发编程

本站由 卡卡龙 使用 Stellar 1.29.1主题创建

本站访问量 次. 本文阅读量 次.