1、不要去解锁一个未被加锁的mutex锁;

2、不要一个线程中加锁而在另一个线程中解锁;

3、使用mutex锁用于保护临界资源,严格按照“加锁-->写入/读取临界资源-->解锁”的流程执行,对于线程间同步的需求使用条件变量或信号量实现。

 对于“线程间同步”的使用方法可以使用条件变量或者是信号量实现而不要使用mutex锁,mutex锁一般被用在保护线程间临界资源的情况下。

 


​http://man7.org/linux/man-pages/man3/sem_wait.3.html​