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

石家庄做网站建设的公司排名/重庆电子商务网站seo

石家庄做网站建设的公司排名,重庆电子商务网站seo,厦门做网页网站的公司,wordpress视频列表模板目录一、理解信号量二、信号量实现同步互斥三、信号量相关接口之前我们介绍了互斥锁和条件变量的组合使用来实现线程的同步与互斥,本文使用信号量来实现进程(或线程)同步与互斥。 使用互斥锁和条件变量实现同步互斥时,条件变量负责…

目录

  • 一、理解信号量
  • 二、信号量实现同步互斥
  • 三、信号量相关接口

  之前我们介绍了互斥锁和条件变量的组合使用来实现线程的同步与互斥,本文使用信号量来实现进程(或线程)同步与互斥。

  使用互斥锁和条件变量实现同步互斥时,条件变量负责阻塞与唤醒进程,互斥锁负责给临界资源加锁与解锁。

  信号量实现同步互斥时,并没有分工,而是自己实现了进程的阻塞与唤醒,同时还负责给临界资源加锁解锁。

一、理解信号量

  信号量中含有计时器和pcb等待队列,计数器记录了空闲资源的数量。

  信号量的操作有两种:

  • P操作:当进程(或线程)要访问资源前,首先进行P操作:如果计数大于0,说明有空闲资源,将计数减1后返回。如果计数小于等于0,说明没有空闲资源了。
  • V操作:使用完毕资源后,要进行V操作。V操作会把该资源的计数器加1,代表现在多了一个空闲资源。如果之前有其他进程在申请此资源时由于没有空闲资源而阻塞,那么就唤醒一个被阻塞的进程。(如果有的话)

二、信号量实现同步互斥

信号量是怎样实现同步互斥的?

  • 互斥:将信号量的计数器设置为1,代表临界资源只有1个。访问资源前进行P操作,如果P操作成功,说明我们可以使用临界资源了,如果P操作失败就会阻塞,因为此时临界资源正在被使用。临界资源使用完毕后进行V操作,V操作会将计数器加1,并且唤醒一个正在阻塞等待该资源的进程。(如果有的话)

  • 同步:使用资源之前要进行P操作,代表资源被使用了。资源使用完毕后进行V操作,代表资源空闲了,那些阻塞的进程可以去使用了。

信号量使用流程: 定义信号量,初始化信号量,P操作,V操作,释放信号量

三、信号量相关接口

  1. 定义信号量

sem_t my_sem

 信号量是一个 sem_t 类型的变量。

  1. 初始化信号量

int sem_init(sem_t *sem, int pshared, unsigned int value)

  • sem_t *sem:信号量
  • int pshared:0是线程间通信,非0是进程间通信
  • int val:信号量的初始值

 返回值: 成功返回0; 失败返回-1

  1. P操作

(1)int sem_wait(sem_t *sem)

 作用:如果计数器小于等于0,会阻塞进程。否则将计数器减1后返回。

  • sem_t *sem:信号量

(2)int sem_trywait(sem_t *sem)

 作用:如果计数器小于等于0,不会阻塞进程,而是直接返回。

  • sem_t *sem信号量

(3)int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout)

 作用:如果计数器小于等于0,阻塞进程,但有限制时长。

  • sem_t *sem:信号量
  • const struct timespec *abs_timeout:规定的阻塞时间长度
  1. V操作

int sem_post(sem_t *sem)

 作用:将计数器加1。

  • sem_t *sem:信号量

5.释放信号量

int sem_destroy(sem_t *sem)

 作用:释放信号量

  • sem_t *sem:要释放的信号量
http://www.lbrq.cn/news/1297423.html

相关文章:

  • 重庆seo网站策划/营销咨询师
  • 珲春网站建设/第三方网络营销平台有哪些
  • 网站开发协议/线下推广宣传方式有哪些
  • 做的最好的微电影网站有哪些/百度竞价点击神器奔奔
  • 公司招商型网站建设/平台seo什么意思
  • python做网站需要什么/公司推广咨询
  • 刚做淘客没有网站/网站推广的方法有哪些?
  • 绍兴h5建站/百度网页版链接地址
  • 钟祥网站建设/seo免费诊断电话
  • 做一般的公司门户网站投资额/东莞网站优化
  • 网上有做logo的网站吗/百度灰色关键词排名代做
  • 哪些行业做网站推广的多/谷歌账号注册入口官网
  • 犀牛云做网站怎么这么贵/app下载免费安装
  • 1小时赚5000元游戏/aso优化费用
  • 泰州网站建设服务好/开创集团与百度
  • 能下短视频网站做牙/百度竞价是seo还是sem
  • 做旅游网站需要什么/搭建一个网站的流程
  • 泸州网站建设/网络推广网站推广方法
  • 门户网站建设工作的自查报告/百度人工
  • 网站建设域名多少钱/发文章用哪个平台比较好
  • 网站备案信息查询申请/杭州网站优化体验
  • WordPress 插件调试/厦门seo关键词优化培训
  • 咨询企业网站模板/新公司如何做推广
  • 威海网站建设whhl/网络推销平台有哪些
  • 微信h5网站开发/全球网站排名查询
  • 推广网站的作用/培训总结
  • 成华区统一建设办公室网站/做网站公司哪家比较好
  • 网站测试软件/百度seo关键词优化方案
  • 做中国o2o网站领导/免费创建个人网页
  • 网站维护 代码/宁波关键词排名优化
  • 金融工程、金融与经济学知识点
  • 【音视频协议篇】RTSP系列
  • 生成式引擎优化(GEO)权威指南:提升网站在AI搜索中的可见性
  • leetcode3_435 and 605
  • 【2025/07/19】GitHub 今日热门项目
  • OllyDbg技巧学习