lock和wait+signal
lock和wait+signal 在编程中,我们经常使用多线程来提升性能,所以这就涉及到 互斥和同步 的问题了。而在编程中,我们一般都是通过如下方式来完成多线程的互斥和同步: lock | unlock signal + wait(timeout) join sleep C语言 在Linux C编程中,我们通常使用 pthread 类库来完成跨平台的多线程控制,如下是几个常用的API: pthread_mutex_lock():占有互斥锁(阻塞操作) pthread_mutex_unlock(): 释放互斥锁 pthread_cond_signal(): 唤醒第一个调用pthread_cond_wait()而进入睡眠的线程 pthread_cond_wait(): 等待条件变量的特殊条件发生 pthread_cond_timedwait():等待条件变量的特殊条件发生或者timeout pthread_join():阻塞当前的线程,直到另外一个线程运行结束 sleep() : 休眠固定时间, 不过这个API是Linux原生提供,不能跨平台。 注意:**pthread类库是glibc(绝大多数Linux平台标准C库。)的一部分。这些功能都是通过中断号进入内核来完成的,而非仅仅做了Linux兼容API。**具体可见 glibc-2.23\sysdeps\nacl\nacl