同步异步的区别

关注点:同步和异步关注的是消息通信机制

同步:所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。
换句话说,就是由*调用者*主动等待这个*调用*的结果。

异步:而异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。

阻塞与非阻塞

关注点:阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态

阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞:非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。

同步异步与阻塞非阻塞没有必然的关系。同步异步说的是服务方,服务方接受到请求之后是在同一连接返回响应还是挂断连接等待完成操作之后另行通知。阻塞与非阻塞说的是调用方,调用方等待服务返回的时候是不是流程阻塞不执行其他操作。

引用自知乎问答:https://www.zhihu.com/question/19732473

IO操作占用cpu很少,没必要阻塞cpu:https://www.zhihu.com/question/27734728

最新文章

  1. WCF学习之旅—HTTP双工模式(二十)
  2. xss利用和检测平台
  3. JAVA学习Swing章节JPanel和JScrollPane面板的简单学习
  4. CentOS6.5菜鸟之旅:关于搜索的shell命令
  5. JVM是如何分配和回收内存?有实例!
  6. 完整学习git四git对象
  7. Mysql 更改最大连接数
  8. MongoDB工具MagicMongoDBTool
  9. Tomcat6.0数据源配置
  10. 关于body/documentElement ---->clientHeight, offsetHeight, scrollHeight
  11. php __FILE__,__CLASS__等魔术变量,及实例
  12. C/C++指针的指针(**p)和指针的引用(*&)使用案例分析
  13. Lua 环境结构 --Linux
  14. linux修改TCP最大连接数
  15. shell中使用带密码的方式直接pg_dump和psql
  16. php lcg_value与mt_rand生成0~1随机小数的效果比较
  17. 容器化部署Cassandra高可用集群
  18. JS(1) JavaScript 用法
  19. amcharts去除版权标志
  20. VC.遍历文件夹中的文件

热门文章

  1. cloud-init代码调试方法
  2. linux 环境下mysql忽略大小写
  3. django orm 之makemigrations和migrate命令
  4. 开源作品ThinkJDBC—一行代码搞定数据库操作
  5. [bzoj] 1043 下落的圆盘 || 圆上的“线段覆盖”
  6. MySQL基本管理和应用
  7. Pandas之DataFrame——Part 3
  8. centos 7 firewall无法启动
  9. MySQL的菜鸟级操作
  10. 阿里云Centos 7 FTP(vsftp)服务安装及配置