c++ - boost boost::posix_time::milliseconds 可以将接近 0 的值变成 0 吗?

标签 c++ multithreading boost time sleep

所以我创建了一些代码。我使用 boost 定时器。在这里

      while(1){
        timerForCaptureFame.restart();
   //some code
        spendedTimeForCaptureFame = timerForCaptureFame.elapsed();
        if(spendedTimeForCaptureFame < desiredTimeForCaptureFame){
                boost::this_thread::sleep(boost::posix_time::milliseconds(desiredTimeForCaptureFame - spendedTimeForCaptureFame));
        }
}

它会发生吗 desiredTimeForCaptureFame - spendedTimeForCaptureFame > 0 但 boost 会将其视为 0 并暂停线程?

最佳答案

boost::this_thread::sleep(0) 不应该“暂停线程”;它应该立即返回。已经发布了关于 boost::this_thread::sleep 挂起的错误报告,所以您可能遇到了这个错误 --- 如果是这样,我将不胜感激,因为我一直在无法自己复制。

关于c++ - boost boost::posix_time::milliseconds 可以将接近 0 的值变成 0 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121398/

相关文章:

perl - 如何使用 Perl 的系统调用来生成独立线程?

c++ - 如何简化boost::static_vistor的派生类

python - RNN 在 TensorFlow 中的实时实现

c++ - 将整型变量地址分配给字符指针

c++ - QT_AUTO_SCREEN_SCALE_FACTOR 没有效果

c++ - 使用 Boost.Units 定义百分比

c++ - 在 Boost.Log 中过滤非平凡的记录器?

c++ - 使用自定义迭代器设置 vs vector

c - 原子引用计数共享不可变数据是否需要内存屏障?

multithreading - 测试高并发工作线程系统的正确方法是什么?