pthread_mutex_t & pthread_cond_t 总结( 七 )


4.3.2 写法二{    pthread_mutex_lock(&mutex);    // ToDo    pthread_mutex_unlock(&mutex);    pthread_cond_signal(&cond);}优点:不会出现之前说的那个潜在的性能损耗,因为在 signal 之前就已经释放锁了
缺点:如果 unlock 之后 signal 之前,发生进程交换,另一个进程(不是等待条件的进程)拿到这把梦寐以求的锁后加锁操作,那么等最终切换到等待条件的线程时锁被别人拿去还没归还,只能继续等待 。
参考资料

  • linux线程互斥量pthread_mutex_t使用简介
  • pthread_mutex_t 互斥锁 - 简书 (jianshu.com)
  • C语言中pthread_cond_wait 详解
  • Linux中,pthread_cond_t, 条件变量的使用举例
  • linux进阶52——pthread_cond_t
  • 关键字 - restrict
  • *restrict 功能
【pthread_mutex_t & pthread_cond_t 总结】

经验总结扩展阅读