- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2008-5-23 Tu Yongce yongce@126.com V 1.0
1. Thread
(译注:本中文文档对应于Boost 1.35.0 的英文文档。原英文文档版权归Anthony Williams所有,
本中文文档版权归Tu Yongce yongce@126.com所有。)
概述
自Boost 1.34 以来的变化
线程管理
同步
线程局部存储
感谢
翻译术语表
1.1. 概述
Boost.Thread使我们能够用可移植的C++代码来使用有共享数据的多个执行线程。它提供了类和
函数来管理线程本身,以及在线程间同步数据或者为每一个线程提供单独的数据拷贝。
Boost.Thread库最初由William E. Kempf设计和实现。本版本进行了大量重写以紧密跟进C++标准
委员会发布的建议,特别是N2497、N2320、N2184、N2139和N2094。
1.2. 自Boost 1.34以来的变化
自Boost 1.34发行版以来,几乎Boost.Thread 的每一行代码都发生了变化(译注:Boost.Thread最
初发行版出现于Boost 1.25.0 )。然而,大多数接口变化被扩展了,因此新代码很大程度上向后兼容于
旧有代码。新的特性和breaking变化描述如下。
新特性
boost::thread实例和各种锁类型现在是可移动的。
线程可以在中断点被中断。
条件变量现在能够用于任何实现了Lockable概型的类型,通过使用
boost::condition_variable_any (boost::condition是boost::condition_variable_any 的类型别名,
以向后兼容)。boost::condition_variable被提供作为优化,并只与
boost::unique_lockboost::mutex (boost::mutex::scoped_lock )一块工作。
线程ID从boost::thread 中分离出来,因此一个线程可以获得它自己的ID (使用
boost::this_thread::get_id() ),并且这些ID可以用作关联容器的键值,因为它们有比较操作符
的全部集合。
超时设定现在使用Boost.Date_Time库实现,通过类型别名boost::system_time提供的绝对超
时设定,并支持许多情形下的相对超时。boost::xtime被支持以向后兼容。
锁被实现为公共可访问的模板boost::lock_guard 、boost::unique_lock 、boost::shared_lock和
boost::upgrade_lock ,它们在互斥类型基础上模板化。Lockable概型被扩展包含公共可用的
1 / 39
2008-5-23 Tu Yongce yongce@126.com V 1.0
lock()和unlock()成员函数,它们被锁类型使用。
breaking变化
下面的列表应该覆盖了所有打破向后兼容的公共接口变化。
boost::try_mutex 已经被移除,其功能包含在boost::mutex 中。boost::try_mutex作为一个类型
别名,但不再是一个单独的类。
boost::recursive_try_mutex 已经被移除,其功能包含在boost::recursive_mutex 中。
boost::recursive_try_mutex作为一个类型别名,但不再是一个单独的类。
boost::detail::thread::lock_ops 已经被移除。依赖于lock_ops实现细节的代码将再工作,因为
这已经被移除,事实上不再需要,因为互斥类型现在已经提供了公共的lock()和unlock()成
员函数。
拥有第二个类型为bool 的参数的scoped_lock构造函数不再提供。在先前的版本中,
boost:
文档评论(0)