84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
如题,我用 boost::thread 开了一个线程,线程就做循环打印吧。但是这个程序跑起来以后,按 ctrl-c,并不会立即退出,而要等挺长一段时间。
ctrl-c
请问怎么使得这个线程能够马上响应呢?
认证0级讲师
ctrl+c会发送一个SIGINT信号。boost::thread可能要完成一些资源清理工作后再退出。你也可以自己处理SIGINT。不过不推荐使用信号啊。linux下用条件变量。在windows下MESSAGE跟EVENT都可以做这个事情。还有更好的办法是C++11里面的条件变量(boost的线程库已经进了11标准了)
ctrl+c会发送一个SIGINT信号。boost::thread可能要完成一些资源清理工作后再退出。你也可以自己处理SIGINT。不过不推荐使用信号啊。linux下用条件变量。在windows下MESSAGE跟EVENT都可以做这个事情。还有更好的办法是C++11里面的条件变量(boost的线程库已经进了11标准了)