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也将释放它的互斥量。