map的线程安全,boost库读写锁的实现

 
  
 *************** map的线程安全 ********************
 *
 * 参考1
 * map要实现线程安全必须要加锁,如果使用mutex会产生大量的线程等待,可以使用读写锁,
 * 使用读写锁,一个线程在写的时候别的线程等待,多个线程可以同时读。
 
 * https://www.cnblogs.com/dynas/p/7245266.html
 
 
 
 * 参考2
 * boost读写锁例子
 
#include <boost/thread/locks.hpp>
#include <boost/thread/shared_mutex.hpp>
 
typedef boost::shared_mutex Lock;                  
typedef boost::unique_lock< Lock >  WriteLock;
typedef boost::shared_lock< Lock >  ReadLock;
 
//使用example
Lock myLocker;     // or  light_rw_mutex  myLocker;
void ReadFunction()
{
    ReadLock rLock(myLocker);    // or RLock rLock(myLocker);
    //Read common resource
}
 
void WriteFunction()
{
    WriteLock wLock(myLocker);   // or WLock wLock(myLocker);
    //Write common resource
}
  
https://blog.csdn.net/technologyleader/article/details/81666443
 
 
 
.
posted @ 2021-11-30 14:25  一匹夫  阅读(735)  评论(0编辑  收藏  举报