阻塞IO和NIO的区别

个人理解

阻塞io

客户端连接后服务器创建一个socket与客户端的socket 通讯,这个 socket的方法需要线程运行,一个线程运行一个socket的服务即一个线程服务一个客户端,多个用户对应多个线程,
多个线程轮番获得时间片,若是一个socket等待用户输入或者等用户读取(缓冲区的信息未处理好),则阻塞,时间片轮到这个线程时就这么在等待中啥也不干,直到客户端回应,所以造成CPU浪费

Nio

客户端连接和 服务器创建一个socket与客户端的socket 通讯 ,给服务端的socket注册上事件(读写。。。),用一个线程统一的监听所有socket的所有事件,一有事件到了,就把这个socket
需要执行的方法交给一个线程去执行。

阻塞I/O通信模型


多路复用NIO原理及通信模型



区别

面向流与面向缓冲

阻塞与非阻塞IO

选择器

阻塞IO和NIO的区别相关推荐

  1. java io和nio的区别_Java中IO和NIO的本质和区别

    导读热词 简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1 ...

  2. Java NIO:IO与NIO的区别

    一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...

  3. Java与汽车_Java NIO:IO与NIO的区别

    一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...

  4. 【NIO】之IO和NIO的区别

    在Java1.4之前的版本,Java对I/O的支持并不完善,开发人员在开发高性能I/O程序的时候,会面临以下几个问题: 1.没有数据缓存区,I/O性能存在问题 2.没有C/C++通道的概念,输入和输出 ...

  5. 详解Java NIO,IO与NIO的区别

    一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...

  6. Android性能优化--IO 优化( IO基本知识:应用程序、文件系统和磁盘,三种IO方式及适用场景,多线程阻塞IO和NIO)

    目录 I/O 的基本知识 1. 文件系统 2. 磁盘 Android I/O 1. Android 闪存 2. 两个疑问 疑问一:文件为什么会损坏? 疑问二:I/O 有时候为什么会突然很慢? 不同的场 ...

  7. 阻塞IO和非阻塞IO(NIO)

    现在假定一个情形,客户端要从socket读如数据,但是服务器还没有把数据传回来,这时候该怎么办?根据不同的处理办法,可以把IO分为阻塞或者非阻塞的: 阻塞:阻塞是个什么概念呢?比如某个时候你在等快递, ...

  8. Java传统的io和nio区别_Java中IO和NIO的本质和区别

    简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1.0开始就 ...

  9. Java中IO和NIO的本质和区别

    文章目录 简介 IO的本质 DMA和虚拟地址空间 IO的分类 IO和NIO的区别 总结 简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序 ...

  10. java中的NIO和IO到底是什么区别?20个问题告诉你答案

    摘要:NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多. 本文分享自华为云社区<jav ...

最新文章

  1. 程序员面试100题之十一:数组循环移位
  2. 螺钉装弹垫平垫机器人_【经验总结】什么时候用平垫,什么时候用弹垫?
  3. linux开机启动roscore,树莓派ubuntuMate系统中开机自启动ROS的launch文件
  4. 3级调度 fpga_Vivado HLS学习笔记——1.了解FPGA架构
  5. kali linux编辑记事本,kali linux操作系统
  6. asp.net单一登录
  7. ECharts力导向布局图增加滚动条
  8. ThinkPHP中create()方法自动验证表单信息
  9. XXL-API v1.1.1 发布,API管理平台
  10. android+流量防火墙,流量防火墙APP
  11. Android框架揭秘电子书pdf下载
  12. win10系统无法登录ftp服务器失败,Win10系统下ftp连接失败提示“连接已超时”如何解决?...
  13. nRF52840芯片硬件设计解析
  14. im即时通讯开发:群聊消息的已读未读功能
  15. 来看一看 Google 给你的标签是什么
  16. pycharm项目里的根目录
  17. 海洋捕食者算法 MPA
  18. 2021-2027全球与中国冰球护具市场现状及未来发展趋势
  19. 异构计算(Heterogeneous Compute)
  20. 竞猜世界杯,0元免费送 Proscenic 聚划算底价狂欢

热门文章

  1. 【敏捷开发模式的介绍】
  2. 计算机无法识别荣耀9,华为荣耀9连接不上电脑端华为手机助手怎么处理?
  3. 8086CPU中14个寄存器的详解
  4. 可替换MPS MP2451的高压DCDC芯片FS2451助力智能电表设计40V0.5A降压IC
  5. java ftps上传_java – 使用FTPS将文件从android传输到服务器
  6. js分解GIF图片以及合成GIF图片
  7. 使用JavaScript开发IE浏览器本地插件实例
  8. RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR授权方式之加密机如何成功授权
  9. silvaco学习笔记—— Automatic Meshing
  10. 大学生mysql实训心得_大学生实训心得与收获