Java中并发工具类:Semaphore,CountDownLatch等
在Java中,java.util.concurrent
包提供了一些非常有用的并发工具类。其中两个主要的工具类是Semaphore
和CountDownLatch
。
- Semaphore(信号量):
- 信号量是一种多生产线协调的机制。
- 它可以限制同时访问某个资源的数量。
- 当一个线程需要使用资源时,它会尝试获取信号量,如果数量足够,那么就获得了资源使用权。
- CountDownLatch(计数倒计时):
- 计数倒计时是一个用于等待一组线程完成的工具类。
- 它有一个初始值,当每个子线程执行完后,会调用
countDown()
方法来减少计数器的值。 - 当计数器的值归零后,一个或多个
await()
方法将阻塞,并在计数器的值变为非零时返回。
综上所述,Semaphore
用于控制资源访问,而CountDownLatch
则用于等待一组线程完成。
还没有评论,来说两句吧...