Java | 一分钟掌握异步编程 | 1 - 基本概念

前言

同步、异步、阻塞、非阻塞,这些词是不是听过很多遍,但是究竟是什么意思?编码界黑话吗?哥带你搞懂基本概念,一分钟之后你将会超越99%的同行!是不是有点小激动,来,上车!

什么是同步

同步:事情之间相互依赖,A、B、C三个事情按顺序执行,C的开始需要依赖于B的结果,B的开始需要依赖于A的结果,这个过程叫做同步。

现实世界中,你想约你在 Java | 动态代理及作用 里面撩到的女友出去吃饭,给她打电话,一直不接,于是你继续打,直到她接听了你的电话,然后她同意和你一起出去吃饭。你打电话直到女友接听的这个过程,就是同步。

什么是异步

异步:事情之间相对独立,A、B、C三个事情各自执行,A执行完之后回调或者通知B,B执行完之后回调或者通知C,在各自拿到其他事情的结果之前,可以先处理自己那部分的事情,这个过程叫做异步。

异步过程同样也发生在你约女友吃饭之后的情节中,你带着她去沙县国际集团吃小吃,排队的人太多,你不急不忙的找到一个靠窗的二人小饭桌,拿出你双卡双待有着炫彩跑马灯的美帝苹果手机,潇洒扫一扫,花6元巨款RMB点了两碗葱香飘面 飘葱香面 ,额,反正就是两碗面,然后安心坐着拉你的女友打情骂俏谈情说爱,直到老板喊你端面,你才清醒过来到了吃面的时间。你找桌、和女友互撩的过程丝毫没有被排队点餐所影响,这个过程就是现实世界中的异步。

什么是阻塞

阻塞:在同步的定义中,C的操作必须等待B完成,B的操作必须等待A完成,这个叫做阻塞。

同样,在上面的故事中,你一直打电话,直到女友接听,在你打电话约女友的过程中你不做别的,就使劲打电话,这个就是傻乎乎的阻塞行为。

什么是非阻塞

非阻塞:基于异步的定义,B、C各自执行,B调用完A,A回复'收到',A并不是及时把处理结果返回给B,而是在回调的时候把结果通知给B,这个叫做非阻塞。

在故事中,你扫码下单之后返回给你一个排队号,表示老板已经收到你的订单请求,但是当老板做好了两碗面大喊:38号!这时才把真正的处理结果返回给你,整个下单、取餐的过程丝毫不影响你和女友桌面互撩。

最后

就是四个基本定义的排列组合了:

同步阻塞、同步非阻塞、异步阻塞、异步非阻塞

好了,一分钟完了,是不是很快很通透?有没有想再来一分钟?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值