读书人

Effective STL 12 STL器皿线程安全性考

发布时间: 2013-10-19 20:58:22 作者: rapoo

Effective STL 12 STL容器线程安全性考虑

************************************************

时间:2013年10月18日

作者:常保龙

地点:核所C105

************************************************

STL容器的线程安全性:

1、多个读取者是安全的。多线程可能同时读取一个容器的内容,这将正确的执行。当然,在读取时不能有任何写入者操作这个容器;

2、对不同容器的多个写入者是安全的。多线程可以同时写不同的容器。

举例说明:

vector<int> v;...{// 建立新块;Lock<vector<int> > lock(v);// 获取互斥量vector<int>::iterator first5(find(v.begin(), v.end(), 5));if (first5 != v.end()) {*first5 = 0;}}
C++保证如果抛出了异常,局部对象就会被销毁,所以即使当我们正在使用Lock对象时有异常抛出,Lock也将释放它的互斥量。


读书人网 >编程

热点推荐