BIO(同步阻塞):Socket编程就是 BIO ,操作时会阻塞线程,并发处理能力低 。阻塞的原因在于:操作系统允许的线程数量是有限的,多个socket申请与服务端建立连接时,服务端不能提供相应数量的处理线程,没有分配到处理线程的连接就会阻塞等待或被拒绝。

  

NIO(同步非阻塞):是对BIO的改进 ,基于Reactor模型 。bio在传输数据时大部分时间这个“ 数据通道”是空闲的,但还是占用着线程。NIO改进的就是“一个请求一个线程”,在连接到服务端的众多 socket中,只有需要进行 IO操作的才能获取服务端的处理线程进行 IO 。这样就不会因为线程不够用而限制了socket的接入。

  

AIO(异步非阻塞):这种 IO模型 是由操作系统先完成了客户端请求处理再通知服务器去启动线程进行处理 。 AIO也称 NIO2.0 , 在 JDK7开始支持 。

阻塞与非阻塞:主要指的是访问 IO 的线程是否会阻塞(或者说是等待)
  阻   塞:请求资源时,线程只有等到资源就绪之后才去做其他事情
  非阻塞:请求资源时,资源没准备好就先去做其他事情,过一会又来访问,直到资源准备好为止

  

同步和异步:主要是指的数据的请求方式,同步和异步是指访问数据的一种机制
  同    步:请求资源时,直到资源准备就绪获取到结果之后才返回
  异    步:请求资源后,不会等待先去做其他事情,资源处理完之后,主动通知线程来获取结果

  

最新文章

  1. EditText 基本用法
  2. python列表副本
  3. 2016年12月28日 星期三 --出埃及记 Exodus 21:23
  4. QTableWidget详解(样式、右键菜单、表头塌陷、多选等) 2013-10-23 10:54:04
  5. Web Service \restful web services\WCF Service\ServiceStack
  6. 在Linux 应用层 基于i2c-dev.h 实现i2c读写
  7. phpcms v9调用多个栏目下文章的方法
  8. c# 闭包 小例
  9. PBOC APDU命令解析【转】
  10. (转)白话经典算法系列之八 MoreWindows白话经典算法之七大排序总结篇
  11. ASP.NET 全局变量和页面间传值方法
  12. 问题-[DelphiXE2]编译程序体积大的问题
  13. 什么是Numpy的ndarray
  14. 《Windows驱动开发技术详解》之自定义StartIO
  15. C++中使用const修饰指针
  16. MyBatis 查询示例
  17. ELK-filebeat收集日志到Kafka,并转存ES
  18. NFC 大电池 高性价比手机
  19. NodeJS中使用swig模板引擎
  20. thinkphp+redis实现秒杀功能(转)

热门文章

  1. LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
  2. Ubuntu16.04下安装最新版本的CMake
  3. ftp配置文件详解
  4. sentinel.conf样例
  5. leetcode124二叉树最大路径和
  6. ADS1.2与MDK4.7冲突问题的解决方法
  7. 【React自制全家桶】四、React中state与props的分析与比较
  8. TortoiseGit的安装
  9. python 学习笔记(一):在列表、字典、集合中根据条件筛选数据
  10. DVWA----DVWA System error - config file not found. Copy config/config.inc.php.dist to config/config.inc.php and configure to your environment.