zoukankan      html  css  js  c++  java
  • NIO的理解

    1 通道的概念理解

        通道可以形象地比喻为银行出纳窗口使用的气动导管。你的薪水支票就是您要传递的数据,载体就好比是一个缓存区。你先填充缓存区(将你的支票放置在载体上),接着将缓冲"写"到通道中(将载体丢进导管中),然后信息负载就被传递到通道另一侧的I/O服务(银行出纳员)。

        该过程是:出纳员填充缓存区(将支票放置在载体上),接着开始一个反方向的通道传输(将载体丢回到导管中)。载体就到了通道的你这一侧(一个填满了的缓存区正等待你的查验),然后你就会flip缓存区(打开盖子)并将它清空(移除你的收据)。现在你可以开车走了,下一个顾客重复上面的内容。

    2 选择器的概念

        每一个启动导管(通道)都只与一个出纳员的窗口相连。这个窗口有三个槽可以放置运输过来的物品(数据缓冲区),每个槽都有一个指示器(选择键,selection key),当运输的物品进入时会亮起。同时出纳员(工作线程)有看书的癖好,每过一段时间,出纳员看一眼指示灯(调用select函数),来决定一个通道是否已经就绪(就绪选择)。在传送带闲置时,出纳员(工作线程)可以做其他的事情,但需要注意到时候又可以进行及时的操作

  • 相关阅读:
    java线程简要
    Unable to find explicit activity class
    用NetBeans生成jar文件
    Linux下三个可以修改环境变量的地方
    linux定时执行shell脚本
    sql server 性能调优之 SQL语句阻塞查询
    sql server 性能调优之 死锁排查
    IObit Advanced SystemCare 系统清理优化工具
    IDEA配置Maven
    maven的生命周期及常用命令的使用
  • 原文地址:https://www.cnblogs.com/xitang/p/2045563.html
Copyright © 2011-2022 走看看