互斥量:mutual exclusion(简写为mutex)互斥量是属于pthread_mutex_t类型的变量。当要锁定互斥量时,需要调用pthread_mutex_lock()函数,如果当前互斥量处于未锁定的状态,这个调用会锁定互斥量,并立即返回。如果其他线程已经锁定了这一互斥量,那么pthread_mutex_lock()调用会一直阻塞,直至互斥量被解锁,调用将锁定互斥量并返回。如果有不止一个线程在等待获取已经解锁的互斥量,则无法判断哪个线程将如愿以偿。
条件变量:condition variable,条件变量允许一个线程就某个共享变量(或其他共享资源)的状态变化通知其他线程,并让其他线程等待(阻塞)这一通知。