std::this_thread::sleep_for用法以及注意事项

使用

             std::this_thread::sleep_for函数是C11的休眠函数,由于是一个跨平台的函数,因此在代码中大量应用,避免了在不同平台之间所以通过宏定义编译问题。在windows下,可以简单替代Sleep, 在Linux下,替代usleep


调用
            std::this_thread::sleep_for(std::chrono::milliseconds(50));


问题
             如果将时间修改为过去的时间,该函数会一直阻塞,直到机器时间重新走到修改前的时间,才会唤醒线程。例如当前时间是10:30,修改时间为10:20, sleep_for函数会一直阻塞,直到时间重新走到10:30才重新唤醒。将时间修改为将来的时间,没有问题。并且使用Sleep函数在任何情况下也没有问题,跟系统时间没有关系


扩展

        boost sleep_for跟该函数存在相同的问题


猜你喜欢

转载自blog.51cto.com/fengyuzaitu/2565089