当前位置:网站首页>一分钟了解同步、异步、阻塞和非阻塞的区别
一分钟了解同步、异步、阻塞和非阻塞的区别
2022-06-26 00:15:00 【慕容田雨】
今天跟旭哥聊到的并发的机制,深入了解到了同步异步阻塞非阻塞的区别,自己总结一下,加强理解,废话不多说,就是干。
提出问题
同步和异步的区别是什么?
阻塞和非阻塞的区别是什么?
你可以尝试在脑子里想一下这个问题,先有自己的答案,然后再往下看
。
。
。
。
。
。
来看一下答案
同步和异步的关注点的是值的返回方式,
同步是服务方处理完后再响应用户。
而异步是服务方当前就先返回一个收到请求的值,然后真正处理完再返回结果,或者调用方再请求拉取结果。
阻塞和非阻塞的关注点是调用方的状态
阻塞是在服务方处理时,调用方的状态是什么都不干。
而非阻塞是在服务方处理时,调用方去干自己的事情,不在这干等着,调用方自己去查询结果,或者有结果时服务方通知调用方。
优缺点
阻塞
优点:能及时返回数据,没有延迟。
缺点,需要付出等待的时间代价。
非阻塞
优点:与阻塞比较,非阻塞不需要等待任务结果, 可以去执行其他任务,所以对并发的支持比较好。
缺点:不能及时的获取返回结果。因为每隔一段时间才回去询问,但是可能在两次询问动作的时间间隔内任务就可能完成了,这回导致整体数据的吞吐量的降低。
组合后的场景
我们来通过例子看下组合后的场景
同步阻塞
就是小明去无名缘吃米线,点了一个肉沫米线,服务员说大概半个小时可以做好,你得等一会。然后小明什么都不干就在这等着,等做好了再去干找座位。
BIO就是同步阻塞模式,我们的写的大部分方法都是同步阻塞的。
同步非阻塞
还是这个例子,
就是在师傅在坐米线同时,小明也没闲着,他去了个座位,他刷了会手机,但是每过10分钟,他都去看一下饭做好了没。
NIO就是同步非阻塞模式,
异步非阻塞
继续
小明点完米线,服务员给了小明一个号,说米线好了我喊你,然后小明就去找座位记单词了。
AIO是异步非阻塞模式,Callable和一些带有回调方法的都是异步非阻塞模式。
异步阻塞
这种方式很傻,一般没人会去用
边栏推荐
- LeetCode 41 ~ 50
- 前置++,后置++与前置--与后置--(++a,a++与--a,a--)
- Interpretation of script corresponding to postman assertion
- Loss function of depth model
- Input 3 integers and output them from large to small
- 通俗易懂C语言关键字static
- Forgotten Jieba participle
- Abnova丨CSV 单克隆抗体解决方案
- Several methods of JQ obtaining objects
- The answer skills and examples of practical cases of the second construction company are full of essence
猜你喜欢

前置++,后置++与前置--与后置--(++a,a++与--a,a--)

Xiaomi tablet 5 Pro unlock bootloader

Dataframe to list

元气少女王钰洁 受邀担任第六季完美童模全球总决赛代言人

recv & send

GNN (graph neural network) introduction vernacular

王老吉药业“关爱烈日下最可爱的人”公益活动在杭启动

秀场精灵陈梓桐 受邀担任第六季完美童模全球总决赛首席体验官

Easy to understand C language keyword static

cyclegan:unpaired image-to-image translation using cycle-consistent adversarial network
随机推荐
tos cos dscp 区别和作用
GUN make (7) 执行make
Explication du script correspondant à l'assertion Postman
Difference between app test and web test
Pixel6 unlock bootloader
17.11 std::atomic续谈、std::async深入谈
17.11 std:: atomic continuation, std:: async in-depth discussion
Abnova丨CMV CISH 探头解决方案
How to add a "security lock" to the mobile office of government and enterprises?
俏皮少女王艺璇 受邀担任第六季完美童模全球总决赛推广大使
recvmsg & sendmsg
Common deep learning optimizers
Tengwenze, a hot-blooded boy, was invited to serve as the image ambassador of the global finals of the sixth season perfect children's model
The 19th - 22nd week of scientific research training - about tnet and memnet
Perfdog
CYCA少儿形体礼仪 乐清市培训成果考核圆满落幕
Reverse output an integer
Log4j2 vulnerability
求n乘阶之和
Data arrangement of machinetranslation