Critical Section | Mutex | Event | Semaphore | |
跨进程 | no | yes | yes | yes |
工作状态 | 用户区,快 | 内核,慢 | 内核,慢 | 内核,慢 |
释放控制 | 当前线程释放 | 当前线程释放 | 所有线程均可操作 | 所有线程均可操作 |
造成死锁 | 没有释放会死锁 | 不会,线程死亡后mutex会变成abandoned状态 |
Critical Section | Mutex | Event | Semaphore | |
跨进程 | no | yes | yes | yes |
工作状态 | 用户区,快 | 内核,慢 | 内核,慢 | 内核,慢 |
释放控制 | 当前线程释放 | 当前线程释放 | 所有线程均可操作 | 所有线程均可操作 |
造成死锁 | 没有释放会死锁 | 不会,线程死亡后mutex会变成abandoned状态 |