0
点赞
收藏
分享

微信扫一扫

C\C++ Thread 判断线程是否可结合joinable()


文章作者:里海

简介:

        初始化的线程对象表示一个活动的执行线程; 这样的线程对象是可接合的,并且具有唯一的线程 ID。
        默认构造的(未初始化的)线程对象是不可接合的,其线程 ID 对于所有不可接合的线程都是通用的。

        一个可接合的线程如果结合过了,那么它就不可接合。

效果:

      

C\C++ Thread 判断线程是否可结合joinable()_c

代码:

#include <iostream>
#include <thread>  

void myThread()
{
	// ...
}

int main()
{
	std::thread foo;
	std::thread bar(myThread);

	std::cout << "构造后可结合性:\n" << std::boolalpha;
	std::cout << "foo: " << foo.joinable() << '\n'; //false
	std::cout << "bar: " << bar.joinable() << '\n'; //true

	if (foo.joinable()) foo.join();
	if (bar.joinable()) bar.join();

	std::cout << "结合后可结合性:\n" << std::boolalpha;
	std::cout << "foo: " << foo.joinable() << '\n';
	std::cout << "bar: " << bar.joinable() << '\n';
	
	std::cin.get();
	return 0;
}

举报

相关推荐

0 条评论