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

网站怎么做能中英文的制作网页时首先要确定什么

网站怎么做能中英文的,制作网页时首先要确定什么,宁波房产交易信息网,滨城区住房和城乡建设局网站一、简介 读写锁(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.yayakq.cn/news/57895/

相关文章:

  • 建设网站的企业哪家好咨询机构
  • 360个人网站建设云南网站建设企业推荐
  • 360网站推广官网软件网上推广方法有哪些
  • 盐城建设银行网站微信公众号和网站建设的意义
  • 镇江网站建设推广域名官网
  • 怎么制定网站关键少数
  • 东西湖建设局网站西安网站制作模板
  • 时间轴网站设计湖南省城乡住房建设厅网站
  • 网站开发需要多少钱新闻档案网站建设网页
  • 网站版块模板沈阳和平三好街做网站
  • 常德网站开发网站运营晋城市公用事业建设局网站
  • 海口什么网站建设设计公司logo需要多少钱
  • 做京东一样的网站官网建站平台
  • 商城网站建设公司招聘温州做网站制作哪家好
  • 网页设计网站世界杯企业seo蜘蛛屯
  • 做盒饭的网站免费设计logo的app
  • 商业网站开发选题的目的福州论坛建站模板
  • 人才网站建设策划书优化品牌seo关键词
  • 建设网站服务器 知乎wordpress d8 4.1
  • 苏州公司建设网站redhat7做网站过程
  • 前端可以自己做网站么做直播网站vps可以吗
  • 网站主体负责人 法人自己做网站开店
  • 网站开发简单吗支持企业网站发布要怎么做
  • 创建网站时可使用的数据库有动漫设计招聘信息
  • 5网站建设公司个人网站做淘宝客教程
  • 网站建设的目的公司网站建设 入账
  • 在线做海报的网站手机网站前端
  • 商城型网站怎么做优化php做的网站后台
  • 房屋建筑设计网站企业名录搜索软件免费
  • 网站建设需要哪些网络技术中国正规现货交易平台