boost::thread新建线程如何不阻塞
2016-08-10 11:25
1256 查看
boost.thread,google了下基本都是用join的方式运行线程,但是这样不是阻塞住了么,那如果我想继续执行join下面的语句就不行了,有没有别的方法?
join:等待线程结束,但如果线程里面有while(1)循环,那么线程将永不结束(除非主程序退出运行),如果我想继续执行join下面的语句就不行了。
为了防止程序终止,就需要对新建线程调用join() 方法。join() 方法是一个阻塞调用:它可以暂停当前线程,直到调用 join() 的线程运行结束。
解决boost::thread::join() 的阻塞
join:等待线程结束,但如果线程里面有while(1)循环,那么线程将永不结束(除非主程序退出运行),如果我想继续执行join下面的语句就不行了。
为了防止程序终止,就需要对新建线程调用join() 方法。join() 方法是一个阻塞调用:它可以暂停当前线程,直到调用 join() 的线程运行结束。
解决boost::thread::join() 的阻塞
static void onRun() { for(;;) { //do sth } } boost::thread th(&onRun); th.timed_join(boost::posix_time::seconds(1)); //这样主线程在onRun循环停留一秒钟就会返回,不会阻塞 //
相关文章推荐
- boost::thread线程创建方式总结
- boost::thread之while(true)型线程终结方法
- 解决boost::thread::join() 的阻塞
- BackgroundWorker类或阻塞某些操作,与新建线程不一样
- Thread.interrupt():中断阻塞(的)线程,(跳出阻塞)使其抛出InterruptedException
- 解决使用Delphi的Thread时主线程阻塞
- Java线程同步如何才能排除阻塞
- Java线程同步如何才能排除阻塞
- boost::thread线程管理
- boost::thread线程管理
- 测试boost线程锁(多读一写lock、非阻塞lock)
- 一个使用boost::thread_specific_ptr线程本地存储的示例,value将不受其它线程影响
- 如何结束阻塞状态的线程
- Java线程同步如何才能排除阻塞
- thread——MFC下Boost的线程编译错误问题
- 将boost::thread的某些简单功能封装成类java线程的想法。
- boost::thread线程创建方式总结
- java Thread编程(一)如何创建线程
- 【Boost】boost库中thread多线程详解5——谈谈线程中断
- BOOST 库 thread类线程使用 [大三四八九月实习]