同步/异步,阻塞/非阻塞,串行/并行以及函数回调概念

116 阅读2分钟

背景知识

Java 回调机制 java回调机制实现:blog.csdn.net/qq_17616169…

同步回调和异步回调 blog.csdn.net/BingzangAiy…

同步异步阻塞非阻塞:blog.csdn.net/qq_36963372…

同步异步串行并行:blog.csdn.net/l540675759/…

一、各种概念

同步和异步的概念

  • 是否等待消息返回,是一种消息通信机制(和线程/多线程的概念不一样)。同步是等待消息的返回结果,异步是不等待消息的返回结果(被调用者可以通过调用者的回调函数进行返回)

回调的概念

  • 被调用方是否可以使用调用方的方法

阻塞和非阻塞概念

  • 调用方等待返回结果的状态(当前任务/线程是否被挂起)

串行和并行的概念

  • 任务之间是否存在先后顺序

单线程和多线程的概念

  • 不解释

二、概念组合

(一)组合1

  • 同步调用:最常用的,在一个方法内调用另外一个方法
  • 异步调用:发起一个新线程,不关心结果
  • 同步回调:没有发起一个线程,将调用方传入被调用方,被调用方通过回调函数执行调用方的方法。
  • 异步回调:发起一下新线程,将调用方传入被调用方,被调用方通过回调函数执行调用方的方法。

(二)组合2

  • 同步阻塞:在需要某资源时马上发起请求,并暂停本线程之后的程序,直至获得所需的资源。【一直等待】
  • 同步非阻塞:在需要某资源时马上发起请求,且可以马上得到答复,然后继续执行之后的程序。但如果得到的不是完整的资源,之后将周期性地的请求。【一直请求,但是无用功】
  • 异步阻塞(实际上不应用)【没有意义的。异步表示不等待消息返回,阻塞表示挂起,既然不等待了,为何要挂起】
  • 异步非阻塞:常用,效率最高

(三)组合3

  • 同步串行:任务一个个阻塞
  • 同步并行:任务同时开始启动,但是会阻塞
  • 异步串行:类似线程交替或者线程顺序进行
  • 异步并行:多线程操作