pv操作

简介: pv操作

整形信号量


整体信号量:
什么是整形信号量?目的是为了实现互斥和同步的。他设置了一个令牌,拿走令牌去访问。没有就乖乖呆着。这样我只要有一个令牌
那么我就可以实现互斥和同步。
什么是互斥:互斥就是我访问了你不能访问。
同步就是,我们之间按照一定的规律或者说是规则。去保持运行。不是指一起跑步。
具体看看例子。
初始化:
s=表示资源数目      整型量S
wait(s){
while(s<=0);//满足条件,卡在循环里面
s=s-1;
}//开始使用,拿走令牌(资源减少)
signal(s){
s=s+1;
}//不再使用,归还许可令。


记录型信号量


Typdef struct{
 int value; 
 struct process *L; 
 }semaphore; 
 void wait (semaphore s){ 
 S.value--; 
 if(S.value<0){
  remove a process p to S.L; 
  wakeup(up);
}
 }
  void signal  (semaphore s){
   S.value++;
    if(S.value<=0){
     remove a process p from S.L; 
     wakeup(up); 
  }
  }


借助图像理解,举例四个进程 a b c d

p p p p

a b c d

v v v v

对于整型=2,a,p完-1 .b,p完-2======》0. 当遇到c时候,你由于没有令牌了,所以就是站着处理机等待归还令牌,这样就无法实现让权等待

对于记录型,a,p完-1,b,p完-2======》,当遇到c时候,没有令牌,别等 ,直接送去等待队列。不占用处理机。优点:不需要实现让权等待。


用信号量实现互斥


若要实现互斥,用p v夹紧某个行为;


什么是互斥,互斥就是a访问 b不能 怎么做到。设置一个信号量  ====>mutex 并且设置=1;相当于一个令牌。只有一个,谁拿到谁执行。拿不到的只能等着,这样就实现了互斥。
semaphore S=1;
P1(){
//
P(s);//可以用整型,也可以用记录型,记录型好处,不用忙等。
临界区;
V(s);
}
P2(){
/
P(s);
临界区
V(s);
}


实现同步


若要实现同步,在某个需要方行为前面p一下,某个提供方行为后面v一下;


用p,v实现同步。
semaphore S=0;
p1() {
//
x;
V(s);//S==》0到1,之后唤醒阻塞队列中第一个=====>即P2()
//
/
}
P2(){
...
P(s);//一开始执行到这个,那么此时S还是0.不满足条件,会一直卡死在while循环里面。(或者这样我为了防止忙等,被放置在阻塞队列中。)
//(被唤醒之后,)看到S变为1,跳出while开始执行。实现了从p1到p2之间的同步.
y;
...
相关文章
|
SQL JSON Java
【Elasticsearch专栏 10】深入探索:Elasticsearch如何进行数据导入和导出
在Elasticsearch中,数据导入常通过Bulk API、Logstash或Java客户端进行,支持JSON、CSV等格式。导出则可通过SQL查询、Scroll API或第三方工具如elasticdump实现,将数据以JSON、CSV等格式导出。这些方法确保了数据的高效、安全导入与导出。
1927 5
|
9月前
|
Ubuntu Linux Windows
IP地址查看方法
本指南介绍了在不同操作系统中查看设备IP地址的方法。在Windows系统中,可通过命令提示符(输入`ipconfig`)或设置界面查找IPv4地址;Linux系统中,使用终端命令`ifconfig`或`ip addr show`获取网络接口的IP;Mac系统则可在“系统偏好设置”中的“网络”查看,或通过终端执行相同命令获取。这些方法简单易行,适用于各种常见场景。
4081 11
|
程序员 Shell 数据格式
python股票量化交易(1)---K线图、均线与成交量绘制
python股票量化交易(1)---K线图、均线与成交量绘制
2911 0
python股票量化交易(1)---K线图、均线与成交量绘制
|
4月前
|
XML 安全 C++
3DM游戏运行库合集离线安装包下载,可以不联网解决报错,文件缺失"缺少 msvcr120.dll" "DirectX 组件缺失"等问题
3DM游戏运行库合集离线安装包,集成VC++、.NET、DirectX等近50款必备组件,一键修复“缺少dll”、启动报错等问题。支持Win7/10/11,无需联网,智能适配系统,适用于新装机、精简系统及古董游戏兼容,高效稳定,是游戏玩家必备的运行环境解决方案。
1553 2
|
Serverless 开发者 Python
python股票量化交易(6)---使用TA-Lib计算技术指标
python股票量化交易(6)---使用TA-Lib计算技术指标
6047 0
python股票量化交易(6)---使用TA-Lib计算技术指标
java导出word
java导出word
|
算法 程序员 Shell
python股票量化交易(11)---使用pyqt5构建股票交易软件主页
python股票量化交易(11)---使用pyqt5构建股票交易软件主页
1325 0
python股票量化交易(11)---使用pyqt5构建股票交易软件主页
|
Python
python股票量化交易(5)---股价跳空缺口
python股票量化交易(5)---股价跳空缺口
1172 1
python股票量化交易(5)---股价跳空缺口
|
Python
python股票量化交易(2)---震荡类指标KDJ
汝之命,未知若何?即命当荣显,常做落寞想;即时当顺利,常做拂逆想;即眼前足食,常作贫窭想;即人相爱敬,常作恐惧想;即家世望重,常作卑下想;即学问颇优,常作浅陋想。
834 1
python股票量化交易(2)---震荡类指标KDJ
|
数据可视化 索引 Python
python股票量化交易(4)---金叉与死叉
python股票量化交易(4)---金叉与死叉
1299 1
python股票量化交易(4)---金叉与死叉

热门文章

最新文章