简单理解 同步和互斥 同步和异步-----阻塞和非阻塞

一、同步和互斥----实现对临界资源的控制
互斥是同步的一个子集。

互斥:通过互斥锁来实现某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

s=1;
p(s)                        //s-1
printf();
v(s)                      //s+1
通过p v 操作来是实现对 写资源  的独占。   互斥和同步最简单的不同就是 互斥的 s  通常只有一个 且 为 0/1 

同步:通过信号量机制来实现 通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。

s1=1;s2=0;s3=0;
p(s1)  //s1-1                          p(s2) //s2-1                               p(s3)  //s3-1 
printf(A);                               printf(B);                                   printf(C);
v(s2) //s2+1                              v(s3)  //s3+1                               v(s1) //s1+1 
通过对 s1,s2,s3的改变   实现了 顺序 对ABC的打印。

二.同步和异步
线程:
同步是指:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续执行下去。
异步是指:当程序1调用程序2时,程序1径自继续自己的下一个动作,不受程序2的的影响。

通信:
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。—
同步:
A进程依赖于B进程。
A进程向B进程发出一个请求,必须等待B进程返回一个信号。在等待过程中A进程会被阻塞不再执行,一直到信号量返回后,A进程才会被执行。 -----同步阻塞
A进程向B进程发出一个信号,等待B进程返回一个信号。A进程会一直执行,但会不断的向B发送信号,直到返回信号为止。

异步非阻塞:
A进程向B进程发出一个信号,等待B进程返回一个信号。A进程会一直执行,如果B程序返回信号,则去处理,否则,继续执行。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值