前趋图与进程的同步与互斥PV操作通俗理解

前趋图

前趋图想表达的就是先后顺序的关系,
就是想做第二件事的前提是必须第一件事情做好了,但是有可能会出现第二件事要有很多步骤才能实现,且这些事情没有先后关系,所以使用前趋图表达更好。

同步与异步

https://www.cnblogs.com/IT-CPC/p/10898871.html
定义:同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。同步,就是调用某个东西是,调用方得等待这个调用返回结果才能继续往后执行。异步,和同步相反 调用方不会理解得到结果,而是在调用发出后调用者可用继续执行后续操作,被调用者通过状体来通知调用者,或者通过回掉函数来处理这个调用

比方说:你去商城买东西,你看上了一款手机,能和店家说你一个这款手机,他就去仓库拿货,你得在店里等着,不能离开,这叫做同步。现在你买手机赶时髦直接去京东下单,下单完成后你就可用做其他时间(追剧、打王者、lol)等货到了去签收就ok了.这就叫异步。

互斥与共享

互斥的反义词是共享,所谓的互斥就是只能有一个进程或是线程获取这个资源,就好比千军万马过独木桥,一次只能有一个人通过。这个可能不太形象,还有一种更形象的方式,就好比你去占茅坑,茅坑是公用的对吧,但是当你去拉大便后,这个茅坑别人就不能再进来拉大便了,如果这个时候有人要和你一起拉大便,那么就会出现问题,可能你拉在坑外,或者是她拉到坑外。因为这个茅坑是互斥的。跟你去找妓找牛郎一样,如果你喜欢一人独享就把这个妓或者牛郎定位互斥的,如果你喜欢多P那就可以设置成共享的

PV操作

先跟上一个例子,假如你喜欢4P,这个妓或者牛郎就可以设置成共享的,但是这个共享量最大值就是为4,那么问题来了,要是同一时间进来五个人怎么办?那么就变成5P了,不是你想要的了,所以我们必须对这个妓或者牛郎的使用权限进行限制,意思就是,一次只能有有一个人进入,每进入一个人,执行一次P操作,每离开一个人执行一次V操作,P操作就可以理解为-1,V操作就理解成+1,而这个+1 -1是操作的信号量上的,比如你支持4p那么信号量就是4,当再执行P操作<0时就无法执行,那么第五个人就会被关在门口,只能等里面的人完事出去后再进来,那么就可以维持4P.计算机内部的存储就是这个意思,假设你的空间只有5个,那么存储的数据就不能超过5个,所以将信号量设置为5,用PV操作 操作信号量 对其进行约束,防止内存溢出

发布了36 篇原创文章 · 获赞 3 · 访问量 5016

猜你喜欢

转载自blog.csdn.net/nb_zsy/article/details/104091150