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標準了)