线程同步与锁

信号量(Semaphore)

二元信号量和多元信号量,是一个变量,获取-1,释放+1,当变量处于>0的情形下才可以被获取。一个线程的获取可以用另一个线程来释放。

互斥量(Mutes)

很像二元信号量,但是释放只能是本线程。

临界区(Critical Section)

临界区是比互斥量更加严格的同步手段,信号量和互斥量可以不同进程之间操作,也就是说“一个进程创建了一个互斥量或信号量,另一个进程试图去获取该锁是合法的。”,而临界区只能同进程的操作。

读写锁(Read-Write Lock)

读多写少的情形

条件变量(Condition Variable)

使用条件变量可以让许多线程一起等待某个事件的发生,当事件发生时(条件变量被唤醒),所有的线程可以一起恢复执行。

原文地址:https://www.cnblogs.com/wangzi199/p/13549725.html