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

网站维护主要内容经纪人做网站技巧

网站维护主要内容,经纪人做网站技巧,电子商务网站建设认识,哪个网站可以发宝贝链接做宣传信号量 (1)What#xff08;什么是信号量#xff09; 提供一种计数器的方式控制对共享资源的访问#xff1b;当计数器大于0时#xff0c;请求资源成功并计数器-1#xff1b;当计数器小于0时#xff0c;线程阻塞#xff0c;等待其它线程执行signal#xff08;V操作…信号量 (1)What什么是信号量 提供一种计数器的方式控制对共享资源的访问当计数器大于0时请求资源成功并计数器-1当计数器小于0时线程阻塞等待其它线程执行signalV操作唤醒它 (2)Why信号量的作用 实现线程的同步与互斥通过信号量的设计可以实现对共享资源的串行访问实现线程的等待与通知机制当信号量小于0时当前线程将被阻塞当信号量大于0时会唤醒一个阻塞在信号量上的线程 (3)How如何使用信号量实现线程同步 step01创建信号量 可以看作是创建一个信号量对象 sem_t sem; step02初始化信号量 可以看作是对信号量对象的一个初始化这一过程会给信号量的计数器赋予一个初始值 int sem_init(sem_t *sem, int pshared, unsigned int value); 参数sem被初始化的信号量对象参数pshared默认为0表示信号量用于线程同步其它表示信号量用于进程同步参数value表示信号量的数量常用用于表示共享资源的数量返回值成功返回0失败返回1并设置错误码 step03请求资源 请求获取共享资源此时信号量的计数器减1如果信号量小于1请求失败线程阻塞直到信号量满足条件时解除阻塞 int sem_wait(sem_t *sem); 参数sem请求共享资源如果sem中的计数器大于0则请求成功否则线程阻塞返回值成功返回0失败返回1并设置错误码 step04释放资源 释放共享资源此时信号量的计数器加1此时会唤醒一个等待该共享资源的线程 int sem_post(sem_t *sem); 参数sem释放共享资源sem中的计数器1返回值成功返回0失败返回1并设置错误码 step05销毁信号量 本质就是释放信号量对象的内存空间 int sem_destroy(sem_t *sem); 参数sem将要被销毁的信号量对象返回值成功返回0失败返回1并设置错误码 (4代码实例 以下代码是对共享资源的互斥访问共享资源的个数为5 #include semaphore.h #include unistd.h #include iostream #include pthread.h using namespace std; pthread_mutex_t mutex; sem_t semProc; sem_t semComu; struct Node{int iVal;Node * ptrNext;static int iSize; }; int Node::iSize 0; Node * head NULL; void *produce(void *arg){int i 0;while(1){sem_wait(semProc);pthread_mutex_lock(mutex);int iVal i;Node *node new Node;node-iVal iVal;node-ptrNext head-ptrNext;head-ptrNext node;Node::iSize;coutProducing iVal(Node::iSize)endl;pthread_mutex_unlock(mutex);sem_post(semComu);i;sleep(1);} } void *consume(void *arg){while(1){sem_wait(semComu);pthread_mutex_lock(mutex);if(head-ptrNext!NULL){coutComsuing head-ptrNext-iVal;Node *ptr head-ptrNext;head-ptrNext ptr-ptrNext;Node::iSize--;delete ptr;cout(Node::iSize)endl;ptr 0;}pthread_mutex_unlock(mutex);sem_post(semProc);sleep(2);return NULL; } int main() {head new Node; pthread_t tidProc, tidComu; sem_init(semProc, 0, 5); sem_init(semComu, 0, 0); pthread_create(tidProc, NULL, produce, NULL); pthread_create(tidComu, NULL, conmuse, NULL); pthread_join(tidProc, NULL); pthread_join(tidComu, NULL); return 0; }
http://www.hkea.cn/news/14512923/

相关文章:

  • 徐州市城乡和住房建设局网站商城系统开源
  • 网站设计公司业务怎么做中国上市公司前100名
  • 个人博客网站开发背景论文node.js做直播网站
  • 杭州做网站的甘肃省住房和城乡建设局网站
  • 给自己公司做网站运营全网营销的概念和特点
  • 深圳做网站排名福州思企互联网站建设公司怎么样
  • 用vue框架做的网站wordpress没有幻灯片
  • 如何写网站建设实验结果分析长治软件制作平台
  • 泗水县建设局的网站怎么打开二手网站建设论文答辩
  • 下载类网站开发条件wordpress开发手册chm
  • 中国数据统计网站怎样开一家公司
  • 群晖网站建设处理错误500小企业网站制作
  • 辽阳网站建设学校设计师找灵感的网站
  • 设计感网站有哪些方面上海网站建设 s
  • 邮件设计网站seo优化有哪些
  • 织梦印刷公司网站源码做网站的北京
  • 做临时网站企业年报网上申报系统网址
  • 织梦网站栏目管理wordpress更改ip后登录密码
  • 东营有什么网站建设公司三合一网站建设公司
  • 北京企业网站建设方济南公司网站建设公司哪家好
  • 郴州网站制作公司网页网站建设ppt模板下载
  • 手机好看的网站电子书城网站开发项目概况
  • 网站开发项目名电子商务网站建设的开发流程
  • 国内电商网站跳出率是多少包头移动的网站建设
  • 上海自助建站官网福永响应式网站多少钱
  • 网站项目报价方案做网站的公司 成都
  • dede旅游网站源码免费网页上传网站
  • 遵化建设招标网站网站搭建入门
  • 门户网站开发公司平台寻找哈尔滨网站建设
  • 营销网站的主题 定位 修改建议软件工程师报考条件