[转] c++11 线程:让你的多线程任务更轻松

来源:互联网 发布:php面试题及答案宝典 编辑:程序博客网 时间:2024/06/05 09:13


c++11 线程:让你的多线程任务更轻松


介绍

本文旨在帮助有经验的Win32程序员来了解c++ 11线程库及同步对象 和 Win32线程及同步对象之间的区别和相似之处。

在Win32中,所有的同步对象句柄(HANDLE)是全局句柄.它们可以被共享,甚至可以在进程间复制。在C++11中,所有的同步对象都是栈(stack)对象,这意味着它们必须是可“分离(detached)”的(如果支持“分离”的话)以便能够被栈框架(stack frame)所析构。如果大量对象应该分离而你没有,那么它们便会无法实现自己的行动,而毁掉你的原本计划。(译者注:在pthread中,线程有joinable和unjoinable之分,具有joinable的线程在线程结束时,不会清空该线程所占用的栈空间,通常的做法是在pthrea_create创建线程后,再调用pthread_join(有点waitforsingleobject的意思)才会清空,而unjoinable的属性的线程在线程结束时,就会自动清空所占用空间)

所有的c++11同步对象都有一个native_handle()成员 。。。


简单成就完美

一个简单例子:启动一个线程,然后等它结束:


0 0
原创粉丝点击