是否有一个 pthreads API 调用可以执行与 pthread_join()
类似的操作但有超时?我正在寻找类似于 Windows WaitForSingleObject(HANDLE handle, int timeout) 函数的函数。我知道有一个 pthread_timedjoin()
调用,但它仅适用于某些版本的 Linux(绝对不适用于 Android)。
最佳答案
不,没有用于定时 pthread_join() 的标准 API,Android 使用的仿生 C 库中也没有。尽管查看仿生源代码,但他们很容易实现 glibc 中可用的 pthread_timedjoin_np() API。
您可以做的是修改您的线程,使其在完成并即将退出时发出 pthread_cond_t 信号。您想要在该线程上等待的其他线程对条件变量执行 pthread_cond_timedwait()。
关于Android/Linux 线程加入超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13752060/