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

新彊生产建设兵团网站网站icp备案查询官网

新彊生产建设兵团网站,网站icp备案查询官网,优化网站链接的方法,做软件需要网站信号量是c中实现对有限资源访问控制,现成通过信号量获得对资源访问的许可。可用资源大于0,线程可以对资源进行访问,此时计数器减1。当计数器为0时,不可访问资源,线程进入等待。当资源释放时,线程结束等待&a…

信号量是c++中实现对有限资源访问控制,现成通过信号量获得对资源访问的许可。可用资源大于0,线程可以对资源进行访问,此时计数器减1。当计数器为0时,不可访问资源,线程进入等待。当资源释放时,线程结束等待,对资源进行访问。信号量限制并发访问的数量,互斥量实现对具体数据的同步。

release函数将技术值加1这是个原子操作,acquire将计数值减1,如果当前为大于1将减1,如果为0,该函数阻塞。信号量常用于生产者和消费者场景以及资源池应用场景。

下面通过一个停车场模拟信号量的使用

#include<array>
#include<vector>
#include<thread>
#include<iostream>
#include<mutex>
#include<algorithm>
#include<sstream>
#include<iomanip>
#include<semaphore>
#include<random>
#include<syncstream>
using namespace std;template<std::size_t N=10>class CarPark
{
public:CarPark() :sem(N) {};int enter() {//代表一辆车进入停车场osyncstream(cout) << "[" << this_thread::get_id() << "]准备进入停车场\n";sem.acquire();//获得进入的许可 sem计数代表剩余停车位lock_guard lock(mtx);osyncstream(cout) << "[" << this_thread::get_id() << "]\t进入停车场\n";for (int i = 0; i < N; i++){if (spaces[i].empty()){stringstream ss;ss<< this_thread::get_id();//相当于车牌号spaces[i] = ss.str();osyncstream(cout) << "[" << this_thread::get_id() << "]\t\t找到" << i << endl;return i;}}throw(runtime_error("程序异常到达此处"));}void dosomething(){this_thread::sleep_for(chrono::milliseconds(600));}void leave(int idx) //离开停车场{osyncstream(cout) << "[" << this_thread::get_id() << "]\t\t\t离开#" << idx << endl;{lock_guard lock(mtx);spaces[idx].clear();//空出的停车位}sem.release();}void enter_and_leave() //入场中间等待出场混合在一起{int spaceId = enter();dosomething();leave(spaceId);}
private:array<string,N>spaces; //代表N个停车位counting_semaphore<N>sem;//代表当前多少个空车位mutex mtx;//访问spcae时,线程间进行同步
};
int main()
{ const int NSpaces = 2;const int NCars = 5;CarPark<NSpaces>park; vector<thread>cars;//线程容器for (int i = 0; i < NCars; i++){cars.emplace_back([&park]() {park.enter_and_leave();});}for (auto& t : cars){t.join();}return 0;
}

运行结果 

接下来往一个循环buf读写数据

http://www.dtcms.com/a/405504.html

相关文章:

  • 徐州市政建设集团公司网站西安推广公司无网不胜
  • 上海网站建设公司介绍网站建设投
  • 网站建设与运营市场风险邯郸信息港招聘信息
  • 西安公司注册网站网站建设 教案
  • 广州网站推广html网页设计作业成品代码免费下载
  • 建购物网站要多少钱重庆seo推广外包
  • 购物网站建设存在的问题哈尔滨建设集团
  • 兼职做海报网站wordpress mysql扩展
  • 公司网站建设的会计分录有效的网站推广方案
  • 手机商城网站建设江西网站开发科技公司
  • 上海的广告公司网站建设建设一个网站需要做哪些工作
  • 正版seo搜索引擎泉州seo用户体验
  • 来宾网站建设石家庄网站建设是什么意思
  • 织梦网站地图调用全站文章影城网站设计
  • 做影视免费网站违法吗设计师互动平台
  • 南京模板建站哪家好河北公司网站建设效果
  • 网页粒子效果网站.帮别人做网站
  • 杭州网站推广技巧网络优化有哪些主要流程
  • 网站空间格式asp网站建设设计解决方案
  • 公司网站建设考核东莞公司注册地址可以是住宅吗
  • 建设网站书怎么免费建设个人网站
  • 做暧暧免费网站网站备案名称重复
  • 简述网站的建设步骤电脑网站打不开怎么解决
  • 沈阳做网站 熊掌号景安网站备案幕布
  • 织梦网站建设培训怎么制作网站编辑页面
  • 网站专题页面怎么做从哪里设置网站关键词
  • asp.net动态的网站开发拖拽式wordpress建站
  • 药企做网站需要哪些手续wordpress伪静态结构
  • 网站集群建设参数沈阳建设工程信息网中介
  • 建站公司最新报价营销网站建设的公司叫什么