c - pthreads 内部是否忙于等待?

标签 c pthreads internals busy-waiting

我想知道pthreads在调用pthread_cond_timedwait()时是否在内部忙等待

我正在分析一个多线程程序,需要知道调用上述函数时线程是否可能阻塞资源。

平台:Intel x86_64、CentOS 7.5.1804 和 GCC 5.3.0

最佳答案

正如您将在其文档中读到的那样,pthread_cond_wait()pthread_cond_timedwait() 函数会导致调用线程阻塞,直到发出 CV 信号,或者在后一种情况下,指定时间到达。 (或者线程被取消,或者暂时被唤醒来处理信号,或者......)阻塞不仅仅意味着线程不从函数返回。这意味着只要线程保持阻塞状态,就不会在任何执行单元上调度该线程。因此,不,在 pthread_cond_timedwait() 中阻塞的线程不会忙等待。

关于c - pthreads 内部是否忙于等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60156640/

相关文章:

c - 无符号整数运算中低于零

multithreading - glibc c11线程实现是pthread的包装器吗?

windows - 当文件路径超过大约时内部会发生什么。 Windows 中有 32767 个字符?

在 C 中创建自己的证书结构

c - 如何更改字符串数组中的字符?

c - 多线程质数生成器

c - 线程函数 sum_array() 无法被 main 函数调用

git - 打包文件背后的机制

c - 使用 C 函数获取不同 R 对象的类属性时不一致

c++ - 四舍五入到 C 中的次奇数或偶数整数