// (C) Copyright 2009-2012 Anthony Williams// (C) Copyright 2012 Vicente Botet//// Distributed under the Boost Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)#define BOOST_THREAD_VERSION 3#include <iostream>#include <boost/thread/scoped_thread.hpp>void do_something(int& i){++i;}void f(int, int){}struct func{int& i;func(int& i_) :i(i_){}void operator()(){for (unsigned j = 0; j < 1000000; ++j){do_something(i);}}};void do_something_in_current_thread(){}int main(){{int some_local_state=0;boost::strict_scoped_thread<> t( (boost::thread(func(some_local_state))));do_something_in_current_thread();}{int some_local_state=0;boost::thread t(( func(some_local_state) ));boost::strict_scoped_thread<> g( (boost::move(t)) );do_something_in_current_thread();}{int some_local_state=0;boost::scoped_thread<> t( (boost::thread(func(some_local_state))));if (t.joinable())t.join();elsedo_something_in_current_thread();}#if 0{int some_local_state=0;boost::thread t(( func(some_local_state) ));boost::scoped_thread<> g( (boost::move(t)) );if (g.joinable())g.detach();do_something_in_current_thread();}#endif{boost::scoped_thread<> g( &f, 1, 2 );do_something_in_current_thread();}return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。