当前位置: 首页 > news >正文

wordpress 2.0 下载地址如何优化

wordpress 2.0 下载地址,如何优化,上海外贸公司工资一般多少,哪个网站能叫我做直播回放一、简介 读写锁(Read-Write Lock)是一种并发控制机制,用于多线程环境中实现对共享资源的高效读写操作。读写锁允许多个线程同时读取共享资源,但在有写操作时,需要互斥地独占对共享资源的访问,以确保数据的…

一、简介

读写锁(Read-Write Lock)是一种并发控制机制,用于多线程环境中实现对共享资源的高效读写操作。读写锁允许多个线程同时读取共享资源,但在有写操作时,需要互斥地独占对共享资源的访问,以确保数据的一致性。

二、shared_mutex

std::shared_mutex 是 C++17 引入的,用于实现共享/独占访问控制,以下是简单示例:

#include <iostream>
#include <thread>
#include <shared_mutex>std::shared_mutex rwLock;
int sharedData = 0;  // 共享资源void readerFunction(int id) {while (true) {rwLock.lock_shared();std::cout << "Reader " << id << " reads sharedData: " << sharedData << std::endl;rwLock.unlock_shared();// 模拟一些耗时操作std::this_thread::sleep_for(std::chrono::milliseconds(500));}
}void writerFunction(int id) {while (true) {rwLock.lock();sharedData++;std::cout << "Writer " << id << " writes sharedData: " << sharedData << std::endl;rwLock.unlock();// 模拟一些耗时操作std::this_thread::sleep_for(std::chrono::milliseconds(1000));}
}int main() {const int numReaders = 3;const int numWriters = 3;std::thread readers[numReaders];std::thread writers[numWriters];// 启动线程for (int i = 0; i < numReaders; i++) {readers[i] = std::thread(readerFunction, i);}for (int i = 0; i < numWriters; i++) {writers[i] = std::thread(writerFunction, i);}// Join线程for (int i = 0; i < numReaders; i++) {readers[i].join();}for (int i = 0; i < numWriters; i++) {writers[i].join();}return 0;
}

三、自定义 ReadWriteLock

C++17前可以通过 mutexcondition_variable 实现一个自定义的读写锁。代码如下:

#include <mutex>
#include <condition_variable>class ReadWriteLock {
public:ReadWriteLock() : readersCount(0), writing(false) {}void lockRead() {std::unique_lock<std::mutex> lock(mutex_);readCondition_.wait(lock, [this] { return !writing; });readersCount++;}void unlockRead() {std::unique_lock<std::mutex> lock(mutex_);readersCount--;if (readersCount == 0) {writeCondition_.notify_one();}}void lockWrite() {std::unique_lock<std::mutex> lock(mutex_);writeCondition_.wait(lock, [this] { return readersCount == 0 && !writing; });writing = true;}void unlockWrite() {std::unique_lock<std::mutex> lock(mutex_);writing = false;readCondition_.notify_all();writeCondition_.notify_one();}private:std::mutex mutex_;std::condition_variable readCondition_;std::condition_variable writeCondition_;int readersCount;bool writing;
};

使用示例:

#include <iostream>
#include <thread>
#include "ReadWriteLock.hpp" // 包含上面ReadWriteLock的头文件int sharedData = 0;  // 共享数据
ReadWriteLock rwLock;void readerFunction(int id) {while (true) {rwLock.lockRead();std::cout << "Reader " << id << " reads sharedData: " << sharedData << std::endl;rwLock.unlockRead();// 模拟一些耗时操作std::this_thread::sleep_for(std::chrono::milliseconds(500));}
}void writerFunction(int id) {while (true) {rwLock.lockWrite();sharedData++;std::cout << "Writer " << id << " writes sharedData: " << sharedData << std::endl;rwLock.unlockWrite();// 模拟一些耗时操作std::this_thread::sleep_for(std::chrono::milliseconds(1000));}
}int main() {const int numReaders = 3;const int numWriters = 3;std::thread readers[numReaders];std::thread writers[numWriters];// 启动线程for (int i = 0; i < numReaders; i++) {readers[i] = std::thread(readerFunction, i);}for (int i = 0; i < numWriters; i++) {writers[i] = std::thread(writerFunction, i);}// Join线程for (int i = 0; i < numReaders; i++) {readers[i].join();}for (int i = 0; i < numWriters; i++) {writers[i].join();}return 0;
}
http://www.shuangfujiaoyu.com/news/78.html

相关文章:

  • 鹤壁市淇县网站建设厦门seo搜索引擎优化
  • 做的好的网站开发长沙网站开发制作
  • 网站建设先学什么软文代写发布
  • scratch网站开发手机百度网页版入口
  • 高端网站建设 房产软文发布平台哪个好
  • 做淘宝客网站用什么系统东莞seo网站优化排名
  • 域名购买 网站建设百度视频排名优化
  • 网站建设中 html模板陕西网站建设网络公司
  • 金融网站做不了公安备案网络推广运营推广
  • 网站挑错国内新闻最新5条
  • 类似17做网店的网站注册公司
  • 网站制作时间表引擎网站
  • 怎么做属于自己的网站优化提升
  • 今天南宁疫情最新消息seo内部优化具体做什么
  • 潍坊哪里做网站百度seo排名
  • 融资平台公司定义seo优化好做吗
  • 怎么仿别人的网站淘宝推广怎么做
  • 湖州微网站建设实时新闻热点
  • wordpress页面链接如何修改网站优化排名软件网站
  • 沈阳男科三级甲医院广州做seo的公司
  • 许昌网络推广外包天津百度优化
  • 网络优化需要哪些知识青岛seo关键词优化排名
  • 网站域名是啥手游推广加盟
  • 网页设计代码模板海贼王逆冬黑帽seo培训
  • 寻找东莞微信网站建设成都网站优化及推广
  • 软通动力和中软国际对比seo就业前景如何
  • 株洲网站建设服务搜易网优化的效果如何
  • 合肥本地建网站网站建设维护
  • 网站开发 合同b站推广网站2024年不用下载
  • 网站建设服务优势公司品牌推广方案范文