我需要了解pthread_mutex_lock()pthread_cond_wait()以及pthread_cond_signal()的用法。
我看过一段代码,其中一个函数,比如说,CallANumber()是从main()调用的,在这个CallANumber()函数中pthread_mutex_lock()pthread_cond_wait()一起使用,然后由pthread_mutex_unlock()释放,还有另一个函数,比如说,WaitForResponse(),在这个函数中pthread_mutex_lock()pthread_cond_signal()一起被pthread_mutex_unlock()调用和释放。
但我在源库中没有找到任何pthread_create()调用。
是否可以调用Pthread_mutex_lock/unlock()pthread_cond_wait/signal()api而不调用pthread_create()函数?

最佳答案

在非多线程程序中使用这些函数有两个原因:
这些函数是从泛型代码调用的,可能是在库中,如果进程是多线程的(库作者不知道),这个库需要执行同步。如果没有同步,库可能无法在多线程程序中正常工作。
使用process-shared mutexesprocess-shared condition variables跨进程而不是线程进行同步。

07-28 03:03