首先调用thread的构造函数
thread();
-
Effects:
-
Constructs a
boost::threadinstance that refers to Not-a-Thread.
Throws:
-
Nothing
解释:这个构造函数并不附加线程,自然无法启动
template<typename Callable> thread(Callable func);
-
Preconditions:
-
Callablemust by copyable.
Effects:
-
funcis copied into storage managed internally by the thread library, and that copy is invoked on a newly-created thread of execution. If this invocation results in an exception being propagated into the internals of the thread library that is not of typeboost::thread_interrupted, thenstd::terminate()will be called.
Postconditions:
-
*thisrefers to the newly created thread of execution.
Throws:
-
boost::thread_resource_errorif an error occurs.
Callable可以为一个静态或全局函数指针,也可以是一个拥有operator()函数的类,新建立的线程将会调用该函数或operator(),类似Go()。
Thread Constructor with arguments
template <class F,class A1,class A2,...> thread(F f,A1 a1,A2 a2,...);
-
Preconditions:
-
Fand eachAn must by copyable or movable.
Effects:
- Postconditions:
-
*thisrefers to the newly created thread of execution.
Throws:
-
boost::thread_resource_errorif an error occurs.
Note:
-
Currently up to nine additional arguments
a1toa9can be specified in addition to the functionf.
调用thread::join()将会执行新线程,该函数会阻塞calling thread直至新线程执行结束
调用thread::timed_join()将会执行新线程,该函数会阻塞calling thread直至传入参数所规定的时间结束
控制运行中的线程
void interrupt();
static void sleep(system_time const& abs_time);
static void yield();
-
Non-member function
get_id()
Non-member function interruption_point()
Non-member function interruption_requested()
Non-member function interruption_enabled()
Non-member function sleep()
Non-member function yield()
Class disable_interruption
Class restore_interruption
Non-member function template at_thread_exit()
用于调用当前线程
#include <boost/thread/thread.hpp> class thread_group: private noncopyable { public: thread_group(); ~thread_group(); template<typename F> thread* create_thread(F threadfunc); void add_thread(thread* thrd); void remove_thread(thread* thrd); void join_all(); void interrupt_all(); int size() const; };
用于线程组操作
这篇博客详细介绍了如何使用Boost库中的thread类。包括默认构造函数、带参数的构造函数来创建线程,以及如何通过join和timed_join方法控制线程的执行。此外,还提到了interrupt方法来中断线程以及thread类在命名空间和线程组操作中的应用。
9097

被折叠的 条评论
为什么被折叠?



