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

Linux学习——信号量

1.头文件-semaphore.h

2.信号量类型

sem_t sem;
加强版的互斥锁,是并行的

3.主要函数

初始化信号量
        sem_init(sem_t *sem,int pshared,unsigned int value);
 第一个参数       信号量类型

  第二个参数

                        0-线程同步
                        1-进程同步
        value-最多有几个线程操作共享数据


销毁信号量
sem_destroy(sem_t *sem);


加锁
        sem_wait(sem_t *sem);
                调用一次相当于对sem做了一次 --(减减) 操作
                如果sem值为0,线程会阻塞


尝试加锁
        sem_trywait(sem_t *sem);
        sem == 0;加锁失败,不阻塞,直接返回


限时尝试加锁
        sem_timewait(sem_t *sem,xxxx);

         xxx是限时多少秒


解锁++
        sem_post(sem_t *sem);
                对sem做了++ 操作

4.练习

使用信号量实现生产者,消费者模型。
 

相关文章:

  • 编程技能:调试04,逐语句命令
  • JavaScript数据类型简介
  • [Java]反射、String类补充
  • SICAR程序标准功能块 FB1512 “Robot_kuka_FB“
  • 02、Yarn的安装理念及如何破解依赖管理困境
  • Photoshop安装与配置--简单攻略版
  • 【教程】DVWA靶场渗透
  • 【无标题】微信开发者工具编译运行没问题,真机调试报错:Component is not found in path “wx://not-found“.
  • JavaScript 中的同步与异步:从单线程到事件循环
  • 睡前小故事数据集分享
  • 企业微信自建应用开发回调事件实现方案
  • javaNIO详解
  • cv::dnn::NMSBoxes和nms-free的比较
  • 测风塔布局算法详解:基于宏观分区与微观定量选址的双阶段优化方法
  • Java数据结构——ArrayList
  • Spring 依赖冲突解决方案详解
  • SAP系统工艺路线的分配物料出现旧版包材
  • 从 0~1 保姆级 详细版 PostgreSQL 数据库安装教程
  • 理解Java一些基础(八股)
  • 红帽RHEL与国产Linux系统对比:技术、生态与自主可控的博弈
  • 百年传承,再启新程,参天中国迎来2.0时代
  • “女乘客遭顺风车深夜丢高速服务区”续:滴滴永久封禁两名涉事司机账号
  • 北京动物园:大熊猫“萌兰”没有参加日本大阪世博会的计划
  • “不意外”和“不遗余力”,直击上海商超对接外贸企业
  • 王毅会见俄罗斯外长拉夫罗夫
  • 俄乌战火不熄,特朗普在梵蒂冈与泽连斯基会晤后口风突变