信号量SEM

news2024/11/6 9:56:19

前提

1.信号量的本质是一把计数器

2.申请信号本质就是预订资源

3.PV操作是原子的!

将一个公共资源当做整体访问-->锁

如果公共资源不当做整体使用,多进程可以并发的访问公共资源,但不是同一个区域,为了将资源均分,所以有了信号量。

我们在申请信号量,预订了某个区域的资源,我们需要判断资源是否准备就绪吗?

不需要?我们只要申请成功,这份资源就只属于我,可以直接使用

认识接口

初始化

第一个参数可以设置为全局或者局部

第二个参数是决定是否在线程间共享还是在进程间共享

第三个参数为资源个数

P操作

 

V操作

发布信号量

 

销毁

 

基于环形队列的CP问题

 

生产者生产一个,往后走一个,直到走到消费者的前一格,此时不能往前走,因为会覆盖自己历史的数据  

因此:

消费者不能超过生产者,生产者不能把消费者超过一个圈。

我们只需要在以下两种场景生产者和消费者会指向同一个位置:

两种情况需要判断

1.全空

2.全满

资源的认识:p——>空间  c——>数据

p:sem-space c :sem_data

要满足以上四点,我们只需要用信号量去实现,他会帮我们申请资源并对资源做管理,我们只需要初始化好它、

   

 

 

值得一提的是RingQueue队列多生产多消费问题?

单生产者单消费者RingQueue能不能不做修改就实现多生成多消费,答案是不行

 

因为信号量是对资源进行分块管理,一个线程只能访问某一个分块资源,也就是说这个信号量保护的仅仅是空间资源和数据资源,但是_p_pos和_c_pos他们没有被保护起来,可能造成数据错乱的问题。

如何解决?

加锁

 

为什么锁是加在申请信号量之后?

申请信号量是原子性的,是不需要被锁保护的,锁维护的临界区越大,效率其实越低,如果加在申请信号量之前,那么多消费者或多生产者在进入函数后,就不能同时去申请信号量,造成效率降低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2181790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何利用ChatGPT开发一个盈利的AI写作助手网站

3-1 整体介绍写作助手及原型展示说明 在当今数字化时代,人工智能(AI)技术正逐步改变我们的生活方式,特别是在内容创作领域。本文将详细介绍如何利用ChatGPT技术,开发一个能够生成高质量内容的AI写作助手网站&#xff…

埃及 Explained

古埃及,位于尼罗河畔的神秘文明,曾在北非的荒漠中繁荣昌盛。这个充满谜团的王国凭借其宏伟的成就和神秘的文化,数百年来吸引了无数人的好奇心。 埃及人创造了复杂的象形文字,建造了像吉萨大金字塔这样宏伟的建筑,并通…

字体文件压缩

技术点 npm、html、font-spider 实现原理 个人理解:先引入原先字体,然后重置字符为空,根据你自己填充文字、字符等重新生成字体文件,因此在引入的时候务必添加自己使用的文字、字符等!!! 实…

k8s高级功能(系统升级)

版本升级 k8s由于1.23 到1.24底层变了,所以本次示例以1.22升到1.23 升级Master节点 (在master节点执行) 腾空节点 kubectl drain master --ignore-daemonsets 升级kubeadm yum install -y kubelet-1.23.17 kubeadm-1.23.17 kubectl-1.23.17…

【刷题6】一维前缀和、二维前缀和

目录 一、一维前缀和二、二维前缀和 一、一维前缀和 题目: 思路: 一、前缀和,时间复杂度O(1),快速得到区间的值 二、预处理,公式——dp[i] dp[i-1] arr[i] 三、使用前缀和,根据…

使用小尺寸大模型和 Dify 清洗数据:Qwen 2.5 7B

本篇文章,我们聊聊如何使用最近发布的 Qwen 2.5 7B 模型来做日常低成本的数据清理工作。 写在前面 这个月好像比上个月还忙,去了很多地方,见了很多朋友。 之前云栖大会上说要写几篇 Qwen 相关的实践,一直没有时间,趁…

银河麒麟,apt 安装软件报错640Unknown Status

今天把银行麒麟的机器恢复出厂了,然后apt install 安装极其不稳定,故障现象如下图所示: 错误提示里面有: 640 Unknown Status [IP: 106.116.184.122 80] E: 无法下载 http://archive.kylinos.cn/kylin/KYLIN-ALL/pool/universe/f…

了解客户支持的人工智能:人工智能如何改变客户服务

作者:来自 Elastic Elastic Platform Team 我们都经历过这种情况:走进商店时,看到人工收银台排着长队,而所有自助收银台都是空的。这就是所谓的便捷工具并不那么便捷的情况。曾经,许多客户服务 “解决方案” 也处于这种…

腾讯云新开端口

检查防火墙设置 890 2024-09-30 20:47:18 netstat -tuln | grep 1213891 2024-09-30 20:47:49 ping 110.40.130.231892 2024-09-30 20:48:38 sudo firewall-cmd --zonepublic --add-port1213/tcp --permanent893 2024-09-30 20:48:51 sudo firewall-cmd --reload894 2024-…

加油站智能视频监控预警系统(AI识别烟火打电话抽烟) Python 和 OpenCV 库

加油站作为存储和销售易燃易爆油品的场所,是重大危险源之一,随着科技的不断发展,智能视频监控预警系统在加油站的安全保障方面发挥着日益关键的作用,尤其是其中基于AI的烟火识别、抽烟识别和打电话识别功能,以及其独特…

C++入门基础知识93(实例)——实例18【猴子吃桃问题】

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于猴子吃桃问题的相关内容! 关…

微信小程序处理交易投诉管理,支持多小程序

大家好,我是小悟 1、问题背景 玩过微信小程序生态的,或许就有这种感受,如果收到投诉单,不会及时通知到手机端,而是每天早上10:00向小程序的管理员及运营者推送通知。通知内容为截至前一天24时该小程序账号内待处理的交…

家用无线路由器配置

一.首先进行线路连接。如下图:"光猫LAN口"—网线—"路由器WAN口"。 注意:家用光纤宽带一般选择使用200兆宽带到1000兆,如果网速不达标请查看路由器是否是千兆路由器。千兆路由器通常是双频的,支持两个信号一个…

Ubuntu 20.04常见配置(含yum源替换、桌面安装、防火墙设置、ntp配置)

Ubuntu 20.04常见配置 1. yum源配置2. 安装桌面及图形化2.1 安装图形化桌面2.1.1 选择安装gnome桌面2.1.2 选择安装xface桌面 2.2 安装VNC-Server 3. ufw防火墙策略4. 时区设置及NTP时间同步4.1 时区设置4.2 NTP安装及时间同步4.2.1 服务端(例:172.16.32…

03-指针的类型,算术运算,void指针

指针是强类型的,需要特定类型的指针来存放特定类型变量的地址. 指针作用: 储存内存地址; 解引用那些地址的内容(访问和修改地址中的值) 一、整形,字符型指针输出: #include <stdio.h>int main(int argc, const char* argv[]) {int a 1025;int* p;p &a;printf(&qu…

【Linux:线程概念】

目录 概念&#xff1a; 创建线程的函数&#xff1a;​编辑 ​编辑 有多进程为什么还需要有多线程&#xff1f; 线程调度的成本为什么低&#xff1f; 进程与线程的区别&#xff1a; 概念&#xff1a; 线程是CPU的基本调度单位&#xff0c;在进程内部运行。在内核中&#xff…

Google AlphaChip改变了计算机芯片设计

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

\?拉普拉斯到底在讲什么\?控制理论\?倒立摆/

在大学课程中&#xff0c;无疑控制理论难倒了一大堆同学&#xff0c;那么接下来&#xff0c;从实践中来分析这个控制理论。 首先上场的就是拉普拉斯变化。上篇文章说了一下傅里叶函数的作用和使用&#xff0c;简单回顾一下&#xff1a; 傅里叶变换就是将一个周期或非周期的信号…

【有啥问啥】卡尔曼滤波(Kalman Filter):从噪声中提取信号的利器

卡尔曼滤波&#xff08;Kalman Filter&#xff09;&#xff1a;从噪声中提取信号的利器 什么是卡尔曼滤波&#xff1f; 卡尔曼滤波&#xff08;Kalman Filter&#xff09;是一种高效的递归滤波器&#xff0c;专为处理包含噪声的线性动态系统而设计。它能够从一系列不完全且含…

淘宝商品评论接口技术详解及代码示例

引言 淘宝商品评论接口是电商数据分析中不可或缺的一部分&#xff0c;它可以帮助商家和消费者更好地了解商品的质量、用户满意度等信息。本文将详细介绍如何使用淘宝商品评论接口&#xff0c;并提供相应的代码示例。 淘宝商品评论接口概述 淘宝商品评论接口主要用于获取商品…