为什么`std :: this_thread :: sleep_for`函数拒绝在WSL Ubuntu上睡眠?

问题描述

出于某些奇怪的原因,std::this_thread::sleep_for在WSL Ubuntu上对我不起作用。它只是拒绝在指定的时间内入睡。我想第二点意见,以了解我是在做错什么还是在GNU C ++ std::实现中遇到了一个错误。

USER@ABC-WORKSTATION /tmp
$ cat sleep_test.cpp
#include <chrono>
#include <thread>
#include <iostream>

int main()
{
    auto start = std::chrono::system_clock::now();
    std::time_t start_time = std::chrono::system_clock::to_time_t(start);
    std::cout << "Start: " << std::ctime(&start_time) << std::endl;

    std::cout << "Sleep... " << std::endl;
    std::this_thread::sleep_for(std::chrono::milliseconds(10000));

    auto end = std::chrono::system_clock::now();
    std::time_t end_time = std::chrono::system_clock::to_time_t(end);
    std::cout << "End: " << std::ctime(&end_time) << std::endl;
}
USER@ABC-WORKSTATION /tmp
$ g++ --version
g++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 Free Software Foundation,Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

USER@ABC-WORKSTATION /tmp
$ g++ -o sleep_test sleep_test.cpp
USER@ABC-WORKSTATION /tmp
$ sleep_test
Start: Wed Sep  9 14:15:18 2020

Sleep...
End: Wed Sep  9 14:15:18 2020

USER@ABC-WORKSTATION /tmp
$

如上所示,没有10000毫秒的睡眠,并且代码立即执行!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)