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

建设银行河北分行网站深圳微商城网站设计制作

建设银行河北分行网站,深圳微商城网站设计制作,理财公司网站模板下载,张家港seo建站一、简介 读写锁#xff08;Read-Write Lock#xff09;是一种并发控制机制#xff0c;用于多线程环境中实现对共享资源的高效读写操作。读写锁允许多个线程同时读取共享资源#xff0c;但在有写操作时#xff0c;需要互斥地独占对共享资源的访问#xff0c;以确保数据的…一、简介 读写锁Read-Write Lock是一种并发控制机制用于多线程环境中实现对共享资源的高效读写操作。读写锁允许多个线程同时读取共享资源但在有写操作时需要互斥地独占对共享资源的访问以确保数据的一致性。 二、shared_mutex std::shared_mutex 是 C17 引入的用于实现共享/独占访问控制以下是简单示例 #include iostream #include thread #include shared_mutexstd::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 C17前可以通过 mutex 和 condition_variable 实现一个自定义的读写锁。代码如下 #include mutex #include condition_variableclass ReadWriteLock { public:ReadWriteLock() : readersCount(0), writing(false) {}void lockRead() {std::unique_lockstd::mutex lock(mutex_);readCondition_.wait(lock, [this] { return !writing; });readersCount;}void unlockRead() {std::unique_lockstd::mutex lock(mutex_);readersCount--;if (readersCount 0) {writeCondition_.notify_one();}}void lockWrite() {std::unique_lockstd::mutex lock(mutex_);writeCondition_.wait(lock, [this] { return readersCount 0 !writing; });writing true;}void unlockWrite() {std::unique_lockstd::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.zqtcl.cn/news/322786/

相关文章:

  • 深圳商城网站开发七冶建设集团网站
  • 广州旅游网站建设设计公司wordpress长文章分页代码
  • 手机营销网站网站的字体
  • 设计网站大全软件互动营销用在哪些推广上面
  • 建设银行网站怎样查询贷款信息吗台州网站制作 外贸
  • 建设网站的步骤知乎app开发定制公司
  • 怎样自己做刷赞网站专业网站设计服务
  • 云主机建站如何让自己做的博客网站上线
  • 目前我们的网站正在建设中做网站违反广告法
  • 有没有做美食的规模网站怎么做国外的网站吗
  • 竭诚网络网站建设开发杭州百度推广
  • 怎样购买起名软件自己做网站小程序制作收费
  • 制作企业网站欢迎界面素材cuntlove wordpress
  • 适合建设网站的国外服务器人工智能培训机构
  • 怎么套网站潜江资讯网招聘信息
  • 网站建设 微信公众号建设网站需要
  • 做房产经纪的那些网站可以进客网站关键词排名如何做
  • 网站建设实验总结百科wordpress 前台插件
  • 招聘网站建设销售成都 网站建设
  • 手机选择网站wordpress捐赠按钮
  • 网站建设上动漫制作教学
  • 怎么用cms做网站计算机网络技术专业
  • 建设部颁发的证书网站请问注册公司怎么注册
  • 网站开发php和c语言区别网站开发教程大全
  • 建设银行通控件网站谷歌推广
  • 我要建网站需要什么付费wordpress
  • 网站收录查询情况wordpress主题仿
  • 网站单页生成器c 网站开发需要学什么
  • 什么网站是免费的免费图片链接生成器
  • 网站建设伍金手指下拉9服务器多少钱