ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
**1. 同步器的作用** 可以帮助人们管理互相合作的线程集。同步器机制为线程之间的<mark>共用集结点模式(common rendezvous patterns)</mark>提供了<mark>预置功能</mark>,即如果相互合作的线程集满足某些行为模式之一,那么应该直接重用合适的库类,而不是手工提供锁和条件的集合。 <br/> **2. java.util.concurrent 包提供的同步器** | 类 | 它能做什么 | 说明 | | --- | --- | --- | | CyclicBarrier | 允许线程集等待,直到其中预定数目的线程达到一个公共障栅(barrier),然后可以 选择处理障栅的动作。 | 当大量的线程需要在它们的结果可用之前完成时。 | | Phaser | 类似于循环障栅,不过有一个可变得计数。 | Java SE7 引入 | | CountDownLatch | 允许线程集等待,直到计数器减为0。 | 当一个或多个线程需要等待,直到指定的数目发生。 | | Exchanger | 允许当两个线程准备好时,交换这两个对象。 | 当两个线程工作在同一数据结构上时,一个线程添加数据,另一个线程清除数据。 | | Semaphore | 允许线程集等待,直到被允许继续运行为止。 | 限制访问资源的线程总数。如果许可数是1,常常阻塞线程,直到另一个线程给出许可为止。 | | SynchronousQueue | 运行一个线程把对象交给另一个线程。 | 在没有显示同步的情况下,一个线程准备好送出对象,而另一个线程 |