欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JUC 常用类

程序员文章站 2022-04-20 16:25:06
...
CountDownLatch
场景:用10个线程分治计算1到 n 之和
构造函数: CountDownLatch(int count)
方法: await/countDown

Semaphore
场景:实现一个有界的、可阻塞的、线程安全的 Set
构造函数: Semaphore(int permits)
方法: acquire/release

CyclicBarrier
场景:可重复使用的 CountDownLatch
构造函数: CyclicBarrier(int parties, Runnable barrierAction)
方法: await
说明: await 阻止当前线程运行下去,直到所有线程到达 await() 调用点。 barrierAction 是一个 Runnable 对象,通常用于在放行一组线程前做一些统计工作。这个类最不好掌握,详细参考http://blog.csdn.net/shihuacai/article/details/8856407

FutureTask
场景: ExecutorService
构造函数: ExecutorService#submit(Callable<T> c)
方法: get()

ReentrantLock && Condition
场景:更精准的 wait/notifyAll
构造函数: ReentrantLock#newCondition()
方法: await/signalAll