今天早上到公司,没有其他的事情,先给大家带来一些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中处理这个,当然我这里为了演示,只是简单的输出了一些内容。好了今天就说这么多,主要说明了线程如何等待,以及如何进行打断操作。