(1)除非Mutex的某个约束妨碍你的使用,否则相比信号量要优先使用Mutex,当你写新代码时,只有碰到特殊场合(一般是很底层的代码)才会使用信号量,因此建议首选mutex。
(2)中断上下文中只能使用自旋锁,而在任务睡眠时只能使用互斥体。
需求 | 建议的加锁方式 |
低开销加锁 | 优先使用自旋锁 |
短期锁定 | 优先使用自旋锁 |
长期加锁 | 优先使用互斥体 |
中断上下文 | 使用自旋锁 |
需要睡眠 | 使用互斥体 |
(1)除非Mutex的某个约束妨碍你的使用,否则相比信号量要优先使用Mutex,当你写新代码时,只有碰到特殊场合(一般是很底层的代码)才会使用信号量,因此建议首选mutex。
(2)中断上下文中只能使用自旋锁,而在任务睡眠时只能使用互斥体。
需求 | 建议的加锁方式 |
低开销加锁 | 优先使用自旋锁 |
短期锁定 | 优先使用自旋锁 |
长期加锁 | 优先使用互斥体 |
中断上下文 | 使用自旋锁 |
需要睡眠 | 使用互斥体 |