JAVA 同步、异步、阻塞和非阻塞之间的区别 在软件开发中,同步、异步、阻塞和非阻塞都是非常重要的概念,它们之间的区别是很多开发者经常混淆的。今天,我们将详细介绍JAVA同步、异步、阻塞和非阻塞之间的区别。 同步和异步 同步和异步描述的是消息通信的机制。同步是指当一个request发送出去以后,会得到一个response,这整个过程就是一个同步调用的过程。异步是指当一个request发送出去以后,没有得到想要的response,而是通过后面的callback、状态或者通知的方式获得结果。异步请求有一个最典型的特点:需要callback、状态或者通知的方式来告知调用方结果。 阻塞和非阻塞 阻塞和非阻塞描述的是程序在等待调用结果(消息,返回值)时的状态。阻塞调用是指调用方发出request的线程因为某种原因(如:等待系统资源)被服务方挂起,当服务方得到response后就唤醒挂起线程,并将response返回给调用方。非阻塞调用是指调用方发出request的线程在没有等到结果时不会被挂起,直到得到response后才返回。 同步、异步、阻塞和非阻塞 在IO操作中,我们可以将同步、异步、阻塞和非阻塞四种模式组合起来,形成四种不同的IO模式:同步阻塞IO、异步阻塞IO、同步非阻塞IO和异步非阻塞IO。同步阻塞IO是指Sender在发送请求后,等待Receiver的响应,直到Receiver处理好结果后,Sender才能继续处理其他事情。异步阻塞IO是指Sender在发送请求后,立刻返回,然后等待Receiver的callback,最后再次请求获取response。同步非阻塞IO是指Sender在发送请求后,立刻返回,然后不停的发送请求,直到Receiver处理好结果后,最后一次发请求给Receiver才获得response。异步非阻塞IO是指Sender在发送请求后,立刻返回,然后等待Receiver的callback,最后再次请求获取response。 总结 同步和异步的区别就在于调用方是否需要通过callback、通知或者状态来获取结果。阻塞和非阻塞的区别就在于调用方在发送请求后是否会被block住了。只有正确地理解了这些概念,我们才能更好地设计和实现高效的程序。

- 粉丝: 5
我的内容管理
展开
我的资源
快来上传第一个资源
我的收益 登录查看自己的收益
我的积分
登录查看自己的积分
我的C币
登录后查看C币余额
我的收藏
我的下载
下载帮助
前往需求广场,查看用户热搜最新资源
- (源码)基于ESP32的无线控制应用.zip
- ppt模板:蓝色大气未来智慧城市发展规划年终报告模板.pptx
- plc机械手控制系统设计4组.doc
- 大数据方案介绍.docx
- 电信大数据的研究与应用.docx
- 别墅智能家居系统方案设计书要求.doc
- 通信中练习综合能力.doc
- 计算机技术在生物信息学研究中的应用分析.docx
- 计算机的认识和计算PPT.ppt
- 湖南科技计划项目管理申报指南.doc
- 应用型本科院校《数据通信与计算机网络》课程的改革与探索.docx
- Docker安装-Nginx.doc
- 电力营销系统现状与信息化系统的建设探讨.docx
- 电力调度自动化系统及计算机网络防雷措施.doc
- Vb保存幅图到Access数据库.doc
- (源码)基于Arduino的Si5351替代石英项目.zip


信息提交成功
评论0