线程首先通过pthread_mutex_lock获取互斥锁,然后检查条件ready是否满足。如果条件不满足,线程调用pthread_cond_wait进入等待状态,并释放互斥锁。当条件满足时(由主线程通过修改ready变量的值并调用pthread_cond_signal来触发),等待的线程将被唤醒,重新获取互斥锁,并执行相应的操作。最后,线程释放互斥锁并结束。 需要注意...
45678910
pthread_cond_wait必须放在pthread_mutex_lock和pthread_mutex_unlock之间,因为他要根据共享变量的状态来决定是否要等待,而为了不永远等待下去所以必须要在lock/unlock队中共享变量的状态改变必须遵守lock/unlock的规则pthread_cond_signal即可以放在pthread_mutex_lock和pthread_mutex_unlock之间,也可以放在pthre...
一、pthread_cond_wait 函数 pthread_cond_wait 函数用于使当前线程进入等待状态,它需要一个互斥锁(mutex)作为参数,用于保护共享资源或状态。当线程进入等待状态时,它会释放所持有的互斥锁,以允许其他线程访问共享资源或状态。在等待期间,线程会一直处于睡眠状态,直到被其他线程通过 pthread_cond_signal 函数唤醒。 函数...