背景知识
Java 回调机制 java回调机制实现:blog.csdn.net/qq_17616169…
同步回调和异步回调 blog.csdn.net/BingzangAiy…
同步异步阻塞非阻塞:blog.csdn.net/qq_36963372…
同步异步串行并行:blog.csdn.net/l540675759/…
一、各种概念
同步和异步的概念
- 是否等待消息返回,是一种消息通信机制(和线程/多线程的概念不一样)。同步是等待消息的返回结果,异步是不等待消息的返回结果(被调用者可以通过调用者的回调函数进行返回)
回调的概念
- 被调用方是否可以使用调用方的方法
阻塞和非阻塞概念
- 调用方等待返回结果的状态(当前任务/线程是否被挂起)
串行和并行的概念
- 任务之间是否存在先后顺序
单线程和多线程的概念
- 不解释
二、概念组合
(一)组合1
- 同步调用:最常用的,在一个方法内调用另外一个方法
- 异步调用:发起一个新线程,不关心结果
- 同步回调:没有发起一个线程,将调用方传入被调用方,被调用方通过回调函数执行调用方的方法。
- 异步回调:发起一下新线程,将调用方传入被调用方,被调用方通过回调函数执行调用方的方法。
(二)组合2
- 同步阻塞:在需要某资源时马上发起请求,并暂停本线程之后的程序,直至获得所需的资源。【一直等待】
- 同步非阻塞:在需要某资源时马上发起请求,且可以马上得到答复,然后继续执行之后的程序。但如果得到的不是完整的资源,之后将周期性地的请求。【一直请求,但是无用功】
- 异步阻塞(实际上不应用)【没有意义的。异步表示不等待消息返回,阻塞表示挂起,既然不等待了,为何要挂起】
- 异步非阻塞:常用,效率最高
(三)组合3
- 同步串行:任务一个个阻塞
- 同步并行:任务同时开始启动,但是会阻塞
- 异步串行:类似线程交替或者线程顺序进行
- 异步并行:多线程操作