c++ 多個線程讀一個線程寫同步


這種情況一般多個線程讀是不需要加鎖的。就在寫的時候需要加鎖。

那么要做的就是讓不寫的時候,讀不受同步限制。讓多線程自由的讀。

這個時候就要用讀寫鎖

boost已經有讀寫鎖,而c++ 14才有讀寫鎖。

std::shared_mutex write; //use boost's or c++14 

// One write, no reads.
void write_fun()
{
    std::lock_guard<std::shared_mutex> lock(write);
    // DO WRITE
}

// Multiple reads, no write
void read_fun()
{
    std::shared_lock<std::shared_mutex> lock(write);
    // do read
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM