在必须轮询以了解是否有工作要做的工作线程的主循环中,我让它睡眠以避免繁忙等待。我如何确定适当的睡眠时间?例如,如果我每毫秒醒来一次,可能根本没有必要睡觉。如果我每十分钟醒来一次,这可能会使应用程序看起来不响应(取决于线程正在执行什么操作)。
我之前听说过Cadrian所说的,即人类用户不会注意到100毫秒左右的时间跨度,但是从机器方面接近它呢?间隔可以变得多小,才开始变得浪费?
我想,这归结为一个更一般(即与平台无关)的版本this question。
编辑:当然,问题应始终首先重新表述为“如何将其更改为事件模式而不是轮询”,但现在先假设我不能或不想这样做。
我之前听说过Cadrian所说的,即人类用户不会注意到100毫秒左右的时间跨度,但是从机器方面接近它呢?间隔可以变得多小,才开始变得浪费?
我想,这归结为一个更一般(即与平台无关)的版本this question。
编辑:当然,问题应始终首先重新表述为“如何将其更改为事件模式而不是轮询”,但现在先假设我不能或不想这样做。