boost使用(三)

来源:互联网 发布:樱井知香 大喷泉 编辑:程序博客网 时间:2024/06/18 17:53

今天早上到公司,没有其他的事情,先给大家带来一些boost库的使用方法,今天带来的是线程的打断及其使用。高手请直接略过本文,新手请继续。继续保持我一贯的风格,简洁的代码。

附上代码:

#include <boost/thread.hpp> #include <iostream> void wait(int seconds){boost::this_thread::sleep(boost::posix_time::seconds(seconds));}void thread(){try{for (int i = 0; i < 10; ++i){wait(1);std::cout << i << std::endl;}}catch (boost::thread_interrupted&){std::cout << "interrupted" << std::endl;}}int main(){boost::thread t(thread);wait(3);t.interrupt();t.join();system("pause");}

同样的附上截图:


thread这个函数除了多出一个catch以外没有多出任何东西,只是多了个异常的处理,这里相信大家也没有什么需要说明的,如果不明白看前面的博客,我们现在来关注join这个函数,这个是一个阻塞操作,为了在子线程结束之前,主线程不要退出,保证让子线程能够安全退出,interrupt是一个打断操作,这个打断操作会导致线程异常,这样我们就可以在catch中处理这个,当然我这里为了演示,只是简单的输出了一些内容。好了今天就说这么多,主要说明了线程如何等待,以及如何进行打断操作。

0 0
原创粉丝点击