【发布时间】:2011-08-09 19:22:02
【问题描述】:
假设有问题的机器上有未使用的执行资源,即并非所有 CPU 都在使用。如果一个线程正在等待一个条件变量,那么唤醒这个线程的相关成本是多少?同样,等待条件变量的相关成本是多少?我对粗略的量化和成本的来源都很感兴趣。就答案是“视情况而定”而言,我主要关心 x86/x64 上的最新版本的 Windows 和 Linux。
编辑:由于涉及内核调用,内核调用比常规函数调用贵多少?
【问题讨论】:
-
@Tim:我实际上对 D 的 core.sync.condition 原语很感兴趣,但我把它省略了,因为我怀疑这里的很多人都熟悉它。
-
啊,我删除了我的问题,因为我看到你添加了一个 pthreads 标签。那是因为
core.sync.condition是用pthreads 实现的吗? -
@Tim:在 Linux 上,我很确定。
标签: multithreading concurrency synchronization pthreads condition-variable