同步异步与阻塞非阻塞的区别

问题源于知乎 怎样理解阻塞非阻塞与同步异步的区别?
以下乃个人见解,如有不对之处,欢迎指出讨论。

概念

同步异步是形容结果的通知形式。通知形式!主动/被动。

阻塞和非阻塞是形容客户端在接受到结果之前的自身状态。

一个是状态,一个是形式。

组合

毫无疑问可以进行组合。2*2=4种结果。

我们最常用的两种组合:

同步阻塞:网络请求的同步形式。主动获取结果,并且获取到结果前其他同线程操作不会执行。

异步非阻塞:网络请求的异步形式。结果靠通知,并且发出请求后就执行其他操作去了。

比较不长见的两种形式:

1.同步非阻塞

典型的就是协程(kt),我记得协程的主打特色就是同步非阻塞。实际上本质还是异步,只不过看着形式是同步。(这不是正好对应了前面对应的异步同步只是形式)。这种组合少的原因一般是不好写吧(我猜)

2.异步阻塞

异步了还阻塞,这不神经病吗?

对于网络请求就是用异步的请求,但是主线程wait住直到接口回调。。。。这tm还不如直接用同步呢,用异步反而复杂了。这种组合少的原因是蠢,会被评价为弱智代码(除非这个操作只能异步,但是其他所有操作又必须等这个操作完成。真出现这种操作,只能说这个操作设计的有问题。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值