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

杨浦专业网站建设重庆市建设工程安全管理协会

杨浦专业网站建设,重庆市建设工程安全管理协会,怎么查看网站备案商,英文网站设计哪里好抢票的例子 竞争过程 进程A被切走 进程B被切走 结论#xff1a; 互斥 int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr); mutex: 指向要初始化的互斥锁的指针。attr: 用于设置互斥锁属性的指针#xff0c;通常可以传入 NULL 以使用默认属性… 抢票的例子 竞争过程 进程A被切走 进程B被切走 结论 互斥 int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr); mutex: 指向要初始化的互斥锁的指针。attr: 用于设置互斥锁属性的指针通常可以传入 NULL 以使用默认属性。 锁的本质 加锁 解锁 线程安全与重入 死锁 线程同步 生产消费模型 例子 条件变量 demo #includeiostream #includestring #includepthread.h #includeunistd.hint tickets1000; pthread_mutex_t mutexPTHREAD_MUTEX_INITIALIZER; pthread_cond_t condPTHREAD_COND_INITIALIZER;void *start_routine(void* args){std::string namestatic_castconst char*(args);while(true){pthread_mutex_lock(mutex);pthread_cond_wait(cond,mutex);std::coutname-ticketsstd::endl;tickets--;pthread_mutex_unlock(mutex);}return nullptr; }int main(){const int num5;pthread_t tid[num]{};for(int i0;inum;i){char *namenew char[64];snprintf(name,sizeof(name),thread %d,i1);pthread_create(tidi,nullptr,start_routine,name);}while(true){std::coutmain thread weak upstd::endl;pthread_cond_signal(cond);sleep(1);}for(int i0;inum;i){pthread_join(tid[i],nullptr);}return 0;} 信号量 常用函数 环形队列 环形队列代码 #includeRingQueue.hpp #includeunistd.h #includepthread.h #includerandom #includeiostreamvoid *ProductorRoutine(void* rq){RingQueueint *ringqueuestatic_castRingQueueint*(rq);while(true){int datarand()%101;ringqueue-Push(data);std::cout生产完成 生产的数据是datastd::endl;sleep(1);} }void *ConsumerRoutine(void *rq){RingQueueint *ringqueuestatic_castRingQueueint*(rq);while(true){int data;ringqueue-Pop(data);std::cout消费完成 消费数据是datastd::endl;sleep(1);} }int main(){srand((unsigned int)time(nullptr)^getpid()^pthread_self());RingQueueint *rqnew RingQueueint();pthread_t p,c;pthread_create(p,nullptr,ProductorRoutine,rq);pthread_create(c,nullptr,ConsumerRoutine,rq);pthread_join(p,nullptr);pthread_join(c,nullptr);} #includesemaphore.h #includevector #includecassert #includectime #includesys/types.hstatic const int gcap5;templateclass T class RingQueue{ public:void P(sem_t sem){int nsem_wait(sem);assert(n0);(void)n;}void V(sem_t sem){int nsem_post(sem);assert(n0);(void)n;}public:RingQueue(const int capgcap):_q(cap),_cap(cap){int nsem_init(_spaceSem,0,_cap);assert(n0);nsem_init(_dataSem,0,0);assert(n0);productorStepConsumerStep0;}void Push(const T in){P(_spaceSem);_q[productorStep]in;productorStep%_cap;V(_dataSem);}void Pop(T out){P(_dataSem);out_q[ConsumerStep];ConsumerStep%_cap;V(_spaceSem);}~RingQueue(){sem_destroy(_spaceSem);sem_destroy(_dataSem);}private:std::vectorT _q;int _cap;sem_t _spaceSem; //生产者 空间资源sem_t _dataSem; //消费者 数据资源int productorStep;int ConsumerStep; };
http://www.hkea.cn/news/14405900/

相关文章:

  • 大型网站怎么做seo陕西西安
  • 做直播网站有市场吗做个app好还是做网站好
  • 网站运营总监个人网站备案 流程
  • 网站文字变白色代码怎么做软件开发和网站开发
  • 网站做集群电影网站虚拟主机和vps
  • 商城网站设计教程企业网站建设应具备的功能
  • 网站建设有那几个类型百度上打广告怎么收费
  • 90设计网站创建时间南京哪里有做网站的
  • 找人做网站注意哪些山东省住房和城乡建设厅网站定额站
  • 二级域名解析网站google和百度等相关网站的广告词
  • 回收手表网站微信开放平台网站应用
  • php源码网站修改效果图制作代做网站
  • 做app简单还是网站设计标志公司
  • 五道口网站建设北京工程造价信息网官网
  • 做推文封面的网站go网站开发
  • 河南做个人网站手机咋做网站
  • 建站平台wp设计说明模版
  • 江门公司网站制作成都门户网站建设公司
  • wordpress怎么建立网站WordPress有时候快有时候慢
  • 微网站建设及微信推广方案ppt模板成都市建筑设计研究院
  • 房产网站建设方案论文凡客诚品特色
  • 闲鱼网站如何赚钱ppt模板免费素材
  • 电子网站搜索引擎怎么做南沙哪有做网站的
  • 万网 网站托管微商分销商城
  • 360网站 备案为什么外包会把人干废
  • 什么是响应式网站建设网站受到攻击
  • 做网络写手赚钱的网站购物网站后台管理系统模板
  • 公司网站建设制作全包网站建设就问山东聚搜网络f
  • 网站如何做淘宝联盟推广电商网站建设课件
  • 原网站开发新功能湖南营销型网站建设 在线磐石网络