【发布时间】:2018-09-19 15:02:47
【问题描述】:
为什么线程会阻塞?
您好,我正在尝试将线程暂停给定的秒数。我正在从命令行运行程序。
程序进入“睡眠”但不打印任何内容,直到我按下CTRL+C,此时它打印出必须批量打印的所有内容。为什么它在后台工作?为什么每次之后它都不打印到控制台sleep_for?
main.cpp
#include<iostream>
#include<chrono>
#include<thread>
#include<string>
#include <unistd.h>
int main(int argc,char *argv[])
{
std::cout<<"Started daemon..."<<std::endl;
std::string hostString(argv[1]);
std::cout<<"HostName:"<<hostString<<std::endl;
std::cout<<"Port:"<<atoi(argv[2]);
int i=0;
while(true){
std::cout<<"Iterations:"<<i;
std::this_thread::sleep_for (std::chrono::seconds(1));
if(i++>10000) i=0;
}
return 0;
}
【问题讨论】:
标签: c++ command-line thread-sleep