同步、异步、阻塞、非阻塞的理解

同步、异步、阻塞、非阻塞的理解

  有关这四个概念总会混淆,前几天特意查了下,简单理解了下这四个概念,若理解的不对,希望大家指正。

一、同步异步

  同步是调用者发出请求后,一直等待被调用者响应 ,如果被调用者没有响应那会一直不返回。以买书为例,如下:
这里写图片描述
  异步是调用者发出请求后,接着返回,当然这次返回是没有返回值的,只有当被调用者完成当前业务逻辑,会主动去通知调用者。具体如下:
这里写图片描述

二、阻塞非阻塞

  阻塞是线程在发出请求,在得到消息之前,会一直挂起,只有得到结果之后,才会返回。
这里写图片描述
  非阻塞是线程在发出请求,当前线程不会挂起,而是返回去接着做别的事情,但是自己会主动回来check 下被调用者对请求的处理情况。
这里写图片描述

三、同步异步阻塞非阻塞的区别

1、关注点不同
  同步异步关注的是整个访问过程中的消息通信体制。
  阻塞非阻塞关注的是线程在等待调用结果时,自己的状态。
2、范围不同
  同步异步 是更广的层次上,对整个访问过程,处理情况的描述。
  阻塞非阻塞 仅是单方面(线程)上的,在访问过程中,对自己所处状态的一种描述。(是否等待?)

关于更详细的内容可以参考这篇文章:同步异步阻塞非阻塞的理解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
同步非阻塞异步非阻塞是两种不同的函数调用方式。 同步非阻塞是指在发起函数调用后,调用方不会等待函数的结果返回,而是立即继续执行后续的代码。这意味着调用方无需等待函数的执行结果,可以继续处理其他任务。当函数执行完毕后,调用方可以通过轮询或者回调等方式来获取函数的结果。同步非阻塞的优点是能够提高系统的并发性和响应性。 异步非阻塞是指在发起函数调用后,调用方也不会等待函数的结果返回,但是与同步非阻塞不同的是,异步非阻塞会通过回调、事件通知等方式来通知调用方函数的执行结果。调用方可以继续执行其他任务,并在合适的时机处理函数的返回结果。异步非阻塞的优点是能够提高系统的并发性和性能,减少资源的浪费。 总结来说,同步非阻塞异步非阻塞都是在函数调用时不会发生线程阻塞的情况下继续执行后续代码,但区别在于同步非阻塞需要主动轮询或回调来获取函数的结果,而异步非阻塞则通过回调或事件通知等方式传递函数的执行结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深入理解同步阻塞同步非阻塞异步阻塞异步非阻塞](https://blog.csdn.net/wangpaiblog/article/details/117236684)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茁壮成长的凌大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值