http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_management.html launching threads boost::thread類代表一個可執(zhí)行的線程(thread of execution)。
A new thread is launched by
passing an object of a callable type that
can be invoked with no parameters to the constructor.
The object is then copied into internal storage, and invoked on the newly-created thread of execution.
If you wish to construct an instance of
boost::thread with a function or callable object that
requires arguments to be supplied, this can be done using
boost::bind.
(thread non-copiable, but movable; object that used to created a thread must callable, if not, use boost::ref)
Joining and detaching
當(dāng)代表一個可執(zhí)行的線程(
thread of execution)的boost::thread對象被銷毀時,這個線程便同時被
detached. Detached的線程將繼續(xù)運(yùn)行直到線程終止。
也可以顯式調(diào)用(explicitly)一個boost::thread對象的detach()方法,這時這個線程直接被detach,而這個boost::thread對象講不再代表thread of execution,而指
Not-a-Thread
join()用于等待一個線程結(jié)束。
(timed_join())
Interruption 調(diào)用boost::thread對象的
interrupt()方法,可以中斷其對應(yīng)的線程。
When the interrupted thread next executes one of the specified
interruption points (or if it is currently blocked whilst executing one) with interruption enabled, then a boost::thread_interrupted exception will be thrown in the interrupted thread. If not caught, this will cause the execution of the interrupted thread to terminate. As with any other exception, the stack will be unwound, and destructors for objects of automatic storage duration will be executed.
(boost::this_thread::disable_interruption,
Predefined Interruption Points)
Thread IDs
每一個運(yùn)行中的thread都有一個唯一的id值。
調(diào)用對應(yīng)的
boost::thread對象的
get_id()方法
,或者在運(yùn)行的thread中調(diào)用
boost::this_thread::get_id()
方法。
Namespace this_thread this_thread下包含的是在正在運(yùn)行的線程內(nèi)部,所能進(jìn)行的線程操作,包括上面提到的get_id()方法
http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_management.html#thread.thread_management.this_thread Thread Groupthread_group class provides for a collection of threads that are related in some fashion.
New threads can be added to the group with
add_thread and
create_thread member functions.
thread_group is
not copyable or movable.