Vik*_*tor 1 c++ condition-variable c++11
通常,如果我想模拟某些工作或等待确切的时间间隔,我会使用condition_variable::wait_for或者最坏的情况thread::this_thread::sleep_for.但condition_variable 文档说明wait_for或wait_until方法可能会阻止比请求更长的时间.
由于调度或资源争用延迟,此函数可能会阻塞超过timeout_duration.
可以保证多少精确的等待间隔?
UPDATE
我可以不用到达condition_variable吗?
你不能做这个.
为了得到这样的确切保证,您需要一个实时操作系统.
C++不保证您使用的是实时操作系统.
因此它提供了典型的非RTOS提供的保证.
请注意,在RTOS上编程还有其他复杂问题,远远超出了本问题的范围.
在实践中,当人们真正想要细粒度的时序控制时(例如,他们使用每帧或每扫描线缓冲器或类似物,或音频缓冲器,或其他任何东西),做的一件事就是检查时间是否短暂,如果是这样旋转等待.如果时间较长,他们等待的时间少于他们想要等待的时间,然后唤醒并旋转.
这也不能保证工作,但几乎适用于所有情况.
在RTOS上,平台可以提供您想要的原语.这些不在标准C++的范围之内.没有典型的桌面操作系统是我所知道的RTOS.如果您正在为战斗机的控制硬件或类似设备编程,您可能正在使用RTOS进行编程.
我希望你不是在编写战斗机控制软件并在堆栈溢出时问这个问题.
| 归档时间: |
|
| 查看次数: |
1042 次 |
| 最近记录: |