zoukankan      html  css  js  c++  java
  • 对java NIO 通道的一些了解

    @引言

    reactor(反应器)模式

      使用单线程模拟多线程,提高资源利用率和程序的效率,增加系统吞吐量。下面例子比较形象的说明了什么是反应器模式:

      一个老板经营一个饭店,

      传统模式 - 来一个客人安排一个服务员招呼,客人很满意;(相当于一个连接一个线程)

      后来客人越来越多,需要的服务员越来越多,资源条件不足以再请更多的服务员了,传统模式已经不能满足需求。老板之所以为老板自然有过人之处,老板发现,服务员在为客人服务时,当客人点菜的时候,服务员基本处于等待状态,(阻塞线程,不做事)。

      于是乎就让服务员在客人点菜的时候,去为其他客人服务,当客人菜点好后再招呼服务员即可。 --反应器(reactor)模式诞生了

      饭店的生意红红火火,几个服务员就足以支撑大量的客流量,老板用有限的资源赚了更多的money~~~~^_^

    @通道

    是NIO中的重要概念之一: 通道、缓冲区、选择器

      通道:类似于流,但是可以异步读写数据(流只能同步读写),通道是双向的,(流是单向的),通道的数据总是要先读到一个buffer 或者 从一个buffer写入,即通道与buffer进行数据交互。

    用 Java NIO 中权威的说法:通道是 I/O 传输发生时通过的入口,而缓冲区是这些数 据传输的来源或目标。对于离开缓冲区的传输,您想传递出去的数据被置于一个缓冲区,被传送到通道。对于传回缓冲区的传输,一个通道将数据放置在您所提供的缓冲区中。

    正在学习 https://www.cnblogs.com/umgsai/p/6637466.html

  • 相关阅读:
    windows server2012 R2 本地策略编辑
    iOS 获取相册中图片的名字 url
    iOS -[PFPASIDataCompressor compressBytes:length:error:shouldFinish:] in PFPGZIPInvocationCompressor.o
    iOS 系统根据导航栏和状态栏自动修改布局
    iOS 本地推送通知
    iOS开发日记59-推荐两本好书
    iOS开发日记57-详解Quartz 2D
    iOS开发日记56-详解UIImage
    iOS开发日记55-隐式与显式动画
    iOS开发日记54-Xcode7调试神技
  • 原文地址:https://www.cnblogs.com/baxianhua/p/9291998.html
Copyright © 2011-2022 走看看