如题,我用 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標準了)