今天早上到公司,没有其他的事情,先给大家带来一些boost库的使用方法,今天带来的是线程的打断及其使用。高手请直接略过本文,新手请继续。继续保持我一贯的风格,简洁的代码。
附上代码:
#include#include 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中处理这个,当然我这里为了演示,只是简单的输出了一些内容。好了今天就说这么多,主要说明了线程如何等待,以及如何进行打断操作。