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

同步、异步指的是通信双方约定被调用方如何返回的机制,是在本次会话中返回结果,还是在另外一个会话中返回。

阻塞、非阻塞指的是调用方是否在被调用方未返回结果的过程中一直等待该结果而不去处理其他事情。

实际例子:

  1. 同步阻塞:调用方调用被调用方获取结果,被调用方一直计算结果,直到结果出来才会返回结果到调用方,而调用方此时整个进程都会阻塞在这里等待这个结果返回。
  2. 同步非阻塞:调用方调用被调用方获取结果,被调用方一直计算结果,直到结果出来才会返回结果到调用方,而调用方此时可能在多线程处理其他事务。
  3. 异步阻塞:调用方调用被调用方获取结果,被调用方立即返回,并将结果回调地址携带在返回结果中,而调用方即使得到了立即返回,但是直到被调用方结果计算出来放到回调地址中为止它都是整个进程阻塞在这里,不处理其他事务
  4. 异步非阻塞:调用方调用被调用方获取结果,被调用方立即返回,并将结果回调地址携带在返回结果中,而调用方获取到返回之后就去做其他事情了。

总的来说,同步、非同步主要是描述被调用方如何返回的行为,阻塞、非阻塞主要描述的是调用方如何调用的行为。


   转载规则


《同步、异步、阻塞、非阻塞》 阿钟 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
2020-09-15
下一篇 
对 数据量小的时候设置分片数为1;数据量大的时候调整 shard_size 参数 使用 cardinality 聚合操作。(类似 disitinct) 多字段查询的时候使用算分最高的字段的分值作为整体查询分值 from、size 不能
2020-05-04
  目录