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

网站的优化和推广方案门户网站建设教程

网站的优化和推广方案,门户网站建设教程,邢台网站建设基本流程,网站界面设计如何实现功能美与形式美的统一?一、简介 读写锁#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.hkea.cn/news/14510481/

相关文章:

  • 网站维护很难吗wordpress前端框架
  • 南宁网站建设地方软件工程师工资高吗
  • 天津网站快速备案做企业网站怎样做
  • vps怎么上传网站程序兰州关键词网络推广
  • 随州网站建设推荐长沙县不错的建站按效果付费
  • 做注册会计师网站wordpress live space
  • 怎么把网站地图上传搭建电商平台网站
  • 高端模板建站报价wordpress 首页调用页面标题
  • 一步步教会你怎么做网站小程序源码能直接用吗
  • 中国建设银行卖狗年纪念币官方网站教学网站开发背景
  • 辽宁地矿建设集团有限公司网站莱芜信息平台
  • 用html5做的静态网站网站开发技术与功能 需求说明
  • 企业网站建设的必要性专业团队的梗
  • 资讯网站的优势福建亨立建设集团有限公司网站
  • 杭州做网站要多少钱网站开发尾款如何做账
  • 网站的设计思路范文jquery 网站后台模板
  • ppt模板免费下载网站知乎wordpress增加小工具
  • 太原网站建设丿薇微信内部劵网站怎么做
  • 温州捷创网站建设安年软文网
  • 温州制作手机网站做高端网站公司哪家好
  • 红色页面网站黑马程序员官方网站
  • 设计公司网站怎么做融安有那几个网站做的比较好的
  • 网站升级建设腾讯云网页制作
  • 网站开发招聘成都哪些地方好玩
  • wordpress插件影响网站做外贸必须有网站吗
  • 做网站片头的软件html网页导航栏代码
  • 广东省住房建设厅网站6网站的建设 教学计划
  • 海口兼职网站建设有访问量的网站
  • 深圳微信商城网站设计公司免费推广网站怎么做
  • 站长工具爱情岛自己做网站的软件下载