BIO、NIO

IO操作:网络IO、文件IO、数据库IO等;
非IO操作:纯计算、内存处理等。

BIO,阻塞式IO,痛点:线程碰到IO操作时,需阻塞等待操作完成,才能执行后续流程。
NIO,非阻塞IO,解决痛点:把原本阻塞等待IO操作完成的时间,用来执行其他非IO任务(Eg:处理已就绪数据、计算逻辑)。

NIO 特点说明

  1. 线程基于事件监听机制(selector 对 多个channel事件的监听),主动管理 “就绪事件”;
  2. 调度原则:按照就绪事件到达的先后顺序,依次放入就绪集合中,然后依次被线程依次处理;
  3. 如果任务中没有IO操作,在NIO模型中,线程直接同步执行完;
  4. NIO 模式下,新任务到来是否直接放入就绪队列,取决于任务类型:
    IO任务:关联 channel;
    非IO任务:不经过 selector 就绪队列,线程直接处理。
  5. NIO 和 线程的关系:NIO 是IO操作的组织方式,线程是执行这种方式的载体。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容