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

标签 c++ multithreading

如果能提供一些关于如何定期(比如每 100 毫秒)唤醒 C++ 11 线程的指示,我将不胜感激。平台是Linux,语言是C++。我遇到了这个解决方案:

C++ 11: Calling a C++ function periodically

但是他们在那里调用回调函数,然后在计时器间隔内休眠。这意味着实际周期是函数执行时间+间隔。我想以固定的时间间隔调用回调,而不考虑其执行时间。

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

也许将 POSIX 计时器与 C++ 线程相结合是一种前进的方式?我不确定它到底是如何工作的。

如有任何关于如何开始的建议,我们将不胜感激。

最佳答案

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

关于c++ - 如何定期唤醒 C++ 11 线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37812182/

相关文章:

c++ - 创建相互依赖类的实例 C++11

java - 如何在JAVA中一个接一个地播放文件夹中的音频

c# - 以线程安全的方式使用增量编号更新文件

java - 我可以在它死后重新启动一个线程吗?

c++ - 在编译时在 float 和 double 之间切换

c++ - 警告 #2901 : [omp] OpenMP is not active; all OpenMP directives will be ignored

c++ - Qt子项目 undefined reference `main'

c++ - 在 MFC 应用程序中实现 IServiceProvider

java - 我的生产者/消费者解决方案正确吗?

multithreading - Rust 标准库中的线程局部变量是如何工作的?