1

我在 Linux 上,用 pthreads 做 C++,一切都在 SCHED_RR 上。到目前为止,一切似乎都运行良好。现在我有一个线程可以进行永无止境的计算,可以说它不断更新某物的状态。我希望它执行,假设每 10 毫秒执行一次,时间不超过 1 毫秒。甚至有可能做到这一点吗?

4

1 回答 1

0

是的。该线程可以:

  1. 因此使用合适的信号处理程序设置和报警 1ms
  2. 开工
  3. 当警报响起时,信号处理程序设置条件以停止计算
  4. 处理程序返回后,计算继续,但会在观察到设置了停止条件时尽快停止
  5. 休眠 9ms。

或者(更容易)您可以将线程的优先级设置得更低。这将导致操作系统仅在没有更重要的事情发生时才安排您的计算线程。唯一的难点是确定优先级值的大小是否意味着或多或少的重要......

于 2013-06-09T17:26:54.387 回答