关闭

c++11线程管理,RAII方式等待异常环境下线程结束

标签: c++c++11
789人阅读 评论(0) 收藏 举报
分类:

直接上代码

class thread_guard
{
private:
	std::thread& t;
public:
	explicit thread_guard(std::thread& _t):t(_t){}
	~thread_guard()
	{
		if(t.joinable())
			t.join();
	}
private:
	thread_guard(thread_guard const&);
	thread_guard& operator=(thread_guard const&);

};


void hello()
{
	std::cout<<"hello"<<std::endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
	for(int k = 0 ; k < 10 ; k++)
	{
		//std::auto_ptr<std::thread> test(new std::thread(hello));
		//boost::shared_ptr<std::thread> te(new std::thread(hello));
		std::thread test(hello);
		std::thread te(hello);
		thread_guard g(test);
		thread_guard ge(te);
	}
	return 0;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:75682次
    • 积分:1855
    • 等级:
    • 排名:千里之外
    • 原创:103篇
    • 转载:2篇
    • 译文:6篇
    • 评论:5条
    最新评论