可以用来限制同时执行的线程数量。4.条件变量:用于线程间的通信和同步,可以让一个或多个线程等待某个条件的发生,当条件满足时,可以通知等待的线程。
1. 互斥量(Mutual Exclusion):用于实现临界区的同步,确保在任意给定的时刻,只有一个线程可以进入临界区执行,其他线程必须等待。
2. 信号量(Semaphore):用于控制对共享资源的访问,可以设置一定数量的许可证,每次申请资源就会获取一个许可证,释放资源就会释放一个许可证。可以用来限制同时执行的线程数量。
3. 栅栏(Barrier):用于同步多个线程,等待所有线程到达某个点后再继续执行。
4. 条件变量(Condition Variable):用于线程间的通信和同步,可以让一个或多个线程等待某个条件的发生,当条件满足时,可以通知等待的线程。
5. 读写锁(Read-Write Lock):用于实现对共享资源的读写操作,多个线程可以同时读取共享资源,但只有一个线程可以写入共享资源。
6. 闭锁(CountDownLatch):用于等待其他线程完成某个任务后再执行,可以设置一个初始计数值,每个线程完成任务后将计数值减一,当计数值为零时,等待线程可以继续执行。
7. 交换器(Exchanger):用于两个线程之间的数据交换,当两个线程都调用了exchange方法后,会交换彼此的数据。
8. 信号量(CyclicBarrier):类似于栅栏,用于同步多个线程,等待所有线程到达某个点后再继续执行,但可以重复使用。每次调用await方法后,会等待所有线程到达后再继续执行,直到达到设定的次数。