如何定期唤醒C++ 11线程?

Dav*_*idA 7 c++ multithreading

对于如何定期唤醒C++ 11线程(比如每100ms),我将不胜感激.该平台是Linux和C++语言.我遇到了这个解决方案:

C++ 11:定期调用C++函数

但他们调用了一个回调函数,然后在计时器间隔内休眠.这意味着实际周期是函数执行时间+间隔.我想以恒定的间隔调用回调,而不管它的执行时间.

我想知道Boost会不会有帮助?但我不想使用它,因为这个项目不是多平台的,我想尽量减少第三方库的使用.

也许将POSIX计时器与C++线程结合起来是一种前进的方式?我不确定这究竟是怎么回事.

任何关于如何开始的建议将不胜感激.

Jer*_*emy 8

使用std::this_thread::sleep_until(),每次以固定间隔递增绝对唤醒时间.


小智 4

这是关于此主题的一篇好文章:Periodic Handling With Standard C++11 Facilities https://bulldozer00.com/2013/12/27/periodic-processing-with-standard-c11-facilities/

  • 链接可能会消失,因此最好将相关部分粘贴到答案中。 (10认同)