如何在没有繁忙等待的情况下等待布尔值?

时间:2013-03-23 14:45:15

标签: ruby boolean mutex condition-variable

我有一个使用DRb编写的Ruby应用程序,其中一个远程对象通过在本地对象上翻转一个布尔值来向本地对象发出信号。目前,我等待这样的布尔值:

sleep(0.05) until o.done?

这使CPU保持低水平(~0.2%,不像真正的繁忙时间的100%),响应迅速,但感觉不对。应该有更好的方法来等待一个值,或者说我的进程发出“等待”状态。有吗?

注意:等待代码尽可能多地产生CPU非常重要/告诉操作系统不要安排我们,因为同时运行重要的CPU密集型任务。

0 个答案:

没有答案