我有一堆关于提升线程的问题吗?Boost Thread ID无效
- 如何使用线程构造函数初始化boost线程ID?
- 为什么线程ID在调用join()函数后变得无效?
- 像往常一样,类成员函数是复制到线程内部存储为了执行成员函数,但我发现有人只是将boost线程封装在类中。 这是什么目的?
另一方面,我们允许继承boost线程吗? 请帮忙。
谢谢。
我有一堆关于提升线程的问题吗?Boost Thread ID无效
另一方面,我们允许继承boost线程吗? 请帮忙。
谢谢。
boost::thread
对象的ID是get_id()
成员函数:boost::thread t(do_something);
boost::thread::id tid=t.get_id();
你可以通过调用boost::this_thread::get_id()
获得当前线程的ID。
线程退出后线程ID值仍然有效,这与某些OS线程库的线程ID不同。
如果您传递成员函数的地址和对象的地址,则可以在新线程上对该对象运行成员函数。因此,您可以在成员函数中启动线程,并将this
作为对象指针。这允许新线程通过类实例的数据成员共享数据。
你可以从boost::thread
得到,但它不会真的让你在任何地方,因为没有虚函数。
对2的回答:因为调用连接等待,直到线程终止,并且变为无效。
虽然线程终止,但其他一些数据仍然有效。请解释。 – peterwkc 2010-09-03 07:43:16