当前位置: 首页 > 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.练习

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

http://www.xdnf.cn/news/27685.html

相关文章:

  • 【后端开发】Spring日志
  • 计算机软考中级 知识点记忆——排序算法 冒泡排序-插入排序- 归并排序等 各种排序算法知识点整理
  • PostgreSQL 常用客户端工具
  • 计算机网络 3-4 数据链路层(局域网)
  • MongoDB导出和导入数据
  • leetcode125.验证回文串
  • 网络编程 - 4 ( TCP )
  • 学习设计模式《三》——适配器模式
  • PointCore——利用局部全局特征的高效无监督点云异常检测器论文与算法解读
  • 2025.04.19【Chord diagram】| 弦图绘制技巧大全
  • JMETER使用
  • 论文阅读:2024 ICLR Workshop. A STRONGREJECT for Empty Jailbreaks
  • 图像预处理-绘制图像轮廓与凸包
  • 【Unity】bug记录——部分物体突然不受animator控制
  • No package docker-ce available问题的解决
  • 动手实现文本生成模型:基于 Decoder-only Transformer (PyTorch)
  • 在Ubuntu中安装hadoop的详细过程
  • sqli-labs之Less-7 GET注入写shell
  • 【MySQL数据库】数据类型
  • Git 中修改某个特定的commit提交内容
  • Jsp技术入门指南【七】JSP动作讲解
  • 怎么查看LLM Transformer 架构进行并行计算和设备映射
  • 海量聊天数据处理:基于Spring Boot与SharingJDBC的分库分表策略及ClickHouse冷热数据分离
  • React 第三十三节 ReactRouter 中 useSearchParams 使用详解及注意事项
  • 【数据结构】二叉搜索树
  • SQL注入相关知识
  • 深度解析接口:构建代码规范与实现多态的基石
  • docker转移镜像
  • db中查询关于null的sql该怎么写
  • 测试模板1