首页 > 其他分享 >同步、异步、阻塞和非阻塞

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

时间:2022-08-23 18:33:57浏览次数:62  
标签:异步 同步 继续执行 阻塞 调用 执行 调用者

最开始看到这四个名词的时候,感觉很困惑,这不都一样吗?后来就查了查。
最近又想起来这几个概念,发现记忆有些模糊,故写此博客。

1. 同步

调用者调用被调用者,当调用者没有获取到调用结果(被调用者正在处理,没有返回调用)时,调用者不执行后续操作。

同步的大致流程,调用者->被调用者->被调用者返回调用结果->调用者获取调用结果->调用者继续执行。

2. 异步

调用者调用被调用者,当调用者发起调用请求后,被调用者立即返回(此时被调用者继续执行调用处理,返回的不是调用结果),调用者执行后续操作。

异步的大致流程,调用者->被调用者->调用者获得调用返回,继续执行(同时,被调用者执行调用处理)->调用者获得调用结果.

从上述流程可以看出,调用者并不是在调用的时候获得调用结果,而是在后续的执行过程中才获取到调用结果。

通常调用者获取调用结果的方式有三种,如下
(1) 轮询
调用者发起调用请求后,轮询被调用者是否处理结束。处理结束获取调用处理结果,否则继续轮询。

(2) 通知
被调用者处理结束后通知调用者处理结果。例如,信号,linux系统中的sigin()。

(3) 回调
被调用者处理结束后,调用调用者提供的回调函数。

最后,可以发现同步和异步在描述调用的过程(流程),程序执行的顺序情况

3. 阻塞

调用者发起调用请求后,调用者挂起,等待调用执行结束后,获取调用结果,继续执行。

大致执行流程,调用者发起调用请求->调用者挂起->被调用者执行->被调用者执行结束->唤起调用者->调用者继续执行。

4. 非阻塞

调用者发起调用请求后,调用者继续执行其他任务,不挂起。在后续的某个时刻再获取调用结果。

大致执行流程,调用者发起调用请求->调用者继续执行其他任务(同时,被调用者执行调用处理)。

最后,可以发现阻塞和非阻塞主要描述调用过程中线程的状态

也可以理解为,同步和异步关注的是消息通知的机制,而阻塞和非阻塞关注的是线程等待消息通知时的状态。

标签:异步,同步,继续执行,阻塞,调用,执行,调用者
From: https://www.cnblogs.com/HanYG/p/16617376.html

相关文章

  • SQLSerServer简单触发器同步Bak表
    USE[ITL]GO/******Object:Trigger[dbo].[TR_LMS_Interface_Order_INSERT]ScriptDate:2022/8/2317:16:48******/SETANSI_NULLSONGOSETQUOTED_IDENTIF......
  • 组合逻辑电路描述中采用阻塞赋值,时序逻辑用非阻塞赋值方式赋值
    对于VerilogHDL语言中,经常在always模块中,面临两种赋值方式:阻塞赋值和非阻塞赋值。对于初学者,往往非常迷惑这两种赋值方式的用法,本章节主要介绍这两种文章的用法。......
  • 异步提交表单以及代码实现
    异步提交表单在此使用异步提交表单是为了获取服务器响应的数据。因为我们前台使用的是html作为视图层,不能够直接从servlet相关的域对象获取值,只能通过ajax获取响应数据......
  • 函数式编程与 JS 异步编程、手写 Promise
    目录函数式编程与JS异步编程、手写Promise简答题函数式编程与JS异步编程、手写Promise简答题谈谈你是如何理解JS异步编程的?EventLoop、消息队列都是做什么的?......
  • hadoop集群搭建之测试集群,配置历史服务器,日志聚集,时间同步
    hadoop集群搭建之测试集群,配置历史服务器,日志聚集,时间同步前期概要:我们完全分布式集群已经搭建完毕,并且还写了群启/群关的脚本,接下来有必要来测试一遍集群,我们可以使用官......
  • 服务器时间同步架构与实现chrony
    实验背景模拟企业局域服务器时间同步,保障各服务器系统准确性和时间一致性。时间服务器系统搭建实验架构图环境设备设备IP规划国内互联网NTP服务器ntp.aliyun.co......
  • 阻塞非阻塞与同步异步的区别
    阻塞非阻塞与同步异步的区别同步/异步关注的是消息通知的机制,而阻塞/非阻塞关注的是程序(线程)等待消息通知时的状态。以小明下载文件打个比方,同步阻塞:小明一直盯着下载......
  • springboot使用@Async实现异步调用
    异步与同步同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行......
  • uni-app左右列表同步高亮滚动
    最近在做点单小程序,其中左边是一级菜单,右边是商品列表,其中需求为左边点击高亮后,右边商品列表要滑动至相应的可视区域,同时右边商品列表滚动,左边的一级菜单可跟着可是区域的......
  • Canal 同步表级DDL 表过滤 正则
    原文:Canal常用配置-EasyCms--博客园(cnblogs.com) 基于日志增量订阅&消费的业务:数据库镜像数据库实时备份多级索引(卖家和买家各自分库索引)searchbuild......