同步 异步 阻塞 非阻塞 互斥 同步 同步阻塞 同步非阻塞 异步非阻塞

网上有好多讲这个的,但是非要说的那么学术,看了跟没看一样;

这里说一下我自己的理解,有不对的地方欢迎指正;

同步与异步

同步:A调用(请求)B时,立即需要B的返回结果;

异步:进程以不可预知的顺序向前执行,讲究异步性。A调用(请求)B时,通知B在完成时返回结果。一般实现方式都是多线程,就是每当有一块需要异步执行的代码就开一个线程去执行,但也有其他实现方式,想看其他方式可以去看看我的js执行机制;

阻塞与非阻塞

说阻塞和非阻塞之前,先了解一下操作系统中的 临界资源与共享资源;

临界资源:互斥资源不能被两个或多个进程同时访问,比如打印机;

共享资源:共享资源可以被两个或多个进程同时访问,比如内存;

临界资源和共享资源并不是一成不变的,通过一些方式临界资源是可以变成共享资源的,一般只是实现逻辑上的共享,列如增加缓冲区、访问队列等;

阻塞:就是线程在访问临界资源时,因为拿不到资源的阻塞状态,这时线程一般会被挂起,放入阻塞队列中;

非阻塞:线程访问共享资源;

互斥与同步

互斥:进程在访问临界资源时必须以互斥的方式访问,A正在访问,B就要等着;

同步:进程在访问共享资源时可以同时同步访问;

同步阻塞

A调用(请求)B时,A会等待B的完成,得到结果后再往后执行;

同步非阻塞

A调用(请求)B时,A 不会等待B,而是会以轮询的方式调用(请求)B ,期间A会做其他事,直到B返回结果;

异步非阻塞

A调用(请求)B时,A 只是通知B,在B完成时给A一个结果就好,期间A、B各干各的事;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值