1

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

sleep(0.05) until o.done?

这使 CPU 保持在较低水平(~0.2%,不像真正的 100% 的忙等待),快速响应,但感觉不对。应该有更好的方法来等待一个值,或者让我的进程退出“等待”状态。在那儿?

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

4

0 回答 0