当前位置: 首页 > 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系统对比:技术、生态与自主可控的博弈
  • 为溶血性疾病治疗提供新靶点,专家团队在《细胞》发文
  • 上海浦东:顶尖青年人才最高可获700万元资助及1亿元项目补贴
  • 特朗普:“百分之百”相信能与欧盟达成贸易协议
  • 编年岂徒哉:《资治通鉴》中魏征26年的人生史
  • 美空军B-1B轰炸机抵达日本,执行战略威慑任务
  • 中华人民共和国和马来西亚关于构建高水平战略性中马命运共同体的联合声明