`
dodoflying
  • 浏览: 180813 次
社区版块
存档分类
最新评论

NIO笔记二

    博客分类:
  • IM
阅读更多
  1. CPU利用率100%,什么原因?
  2. Buffer的使用
java 代码
  1.  /**  
  2.  * @author winter  
  3.  *  接收线程  
  4.  */  
  5. class ReceiveThread extends Thread {   
  6.     SocketChannel client = null;   
  7.   
  8.     ByteBuffer buffer = ByteBuffer.allocate(50);   
  9.   
  10.     private boolean val = true;   
  11.   
  12.     public ReceiveThread(SocketChannel client) {   
  13.         this.client = client;   
  14.     }   
  15.   
  16.     public void run() {   
  17.         while (val) {   
  18.             try {   
  19.                 while (client.read(buffer) > 0) { //此处程序进入无限循环直道满足条件
  20.                     buffer.flip();   
  21.                     String result = decode(buffer);   
  22.                     System.out.println(">" + result);   
  23.                     buffer.flip();   
  24.                 }   
  25.             } catch (IOException ex) {   
  26.                 ex.printStackTrace();   
  27.                 return;   
  28.             }   
  29.   
  30.         }   
  31.     }   
  32. }  
分享到:
评论
1 楼 wangwenjunHi 2010-01-07  
你的程序不死循环才怪呢,
while (client.read(buffer) > 0) { //此处程序进入无限循环直道满足条件 
                    buffer.flip();    
                    String result = decode(buffer);    
                    System.out.println(">" + result);    
                    buffer.flip();    
                }    

read之后就没有看见你clear,buffer中当然一直有数据了!

相关推荐

    NIO笔记.doc

    2. **面向流与面向块**: - **面向流**:处理数据时一次一个字节,适合处理连续的数据流,如文件读写。面向流的I/O在链式操作中表现出色,但效率较低。 - **面向块**:处理数据时以块为单位,一次性处理多个字节,...

    java学习笔记1(java io/nio)

    java学习笔记1(java io/nio)设计模式

    nio demo for nio学习笔记(体系结构以及模块介绍)

    2. **Buffer(缓冲区)**:Buffer用于存储和传输数据,它是NIO的核心。读取数据到Channel之前,先要将数据写入Buffer;从Channel读取数据时,也会先读取到Buffer。 3. **Selector(选择器)**:Selector允许单线程...

    javaNIO学习笔记

    ### Java NIO 学习笔记 #### 一、概述 Java NIO (Non-Blocking IO,也称为 Java New IO),是 Java 对传统 IO 模型的一次重大改进,旨在提高程序处理大量并发连接的能力。NIO 的核心组件包括 Channels、Buffers 和 ...

    Java NIO学习笔记——ByteBuffer用法

    在Java编程语言中,NIO(New Input/Output)是一个重要的特性,它为开发者提供了非阻塞I/O操作的能力,极大地提高了程序的性能。本文主要关注的是Java NIO中的ByteBuffer,一个关键的数据容器,用于在通道(Channel)...

    java NIO学习系列 笔记

    2. **缓冲区(Buffer)**: - 缓冲区是数据的临时存储区域,用于在通道之间传输数据。在NIO中,有多种类型的缓冲区,如ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer和LongBuffer,分别对应不同的...

    JAVA NIO学习笔记.docx

    2. **Java标准IO回顾** 在Java中,标准IO基于流(Stream)的概念,分为字节流和字符流两大类。字节流如`InputStream`和`OutputStream`处理原始字节数据,一次传输一个字节;字符流如`Reader`和`Writer`处理Unicode...

    NIO学习笔记

    《NIO学习笔记》 在Java编程领域,NIO(Non-blocking Input/Output,非阻塞I/O)是一种重要的I/O模型,与传统的BIO(Blocking I/O)相对应。NIO提供了一种新的方式来处理I/O操作,特别是在处理大量并发连接时,它的...

    日常笔记-Nio通信原理

    日常笔记-Nio通信原理

    尚硅谷JAVA基础笔记吐血整理

    “尚硅谷JAVA基础笔记”涵盖了Java语言的基础知识,包括语言概述、基本语法、面向对象概念、封装、继承和多态,以及一些关键概念如形参与实参、属性与局部变量、构造器、this关键字、包和MVC设计模式的使用。...

    javaNIO学习笔记(csdn)————程序.pdf

    2. **缓冲区(Buffer)**:缓冲区是NIO中的核心概念,它是数据的容器。读取数据时,数据首先会被读入到缓冲区,然后再从缓冲区提取;写入数据时,先写入缓冲区,再从缓冲区写入通道。 3. **选择器(Selector)**:选择...

    读书笔记:NIO与Socket编程技术指南.zip

    读书笔记:NIO与Socket编程技术指南

    读书笔记:学习nio和socket项目参考于《NIO与Socket编程技术与指南》.zip

    读书笔记:学习nio和socket项目参考于《NIO与Socket编程技术与指南》

    读书笔记:NIO与Socket编程技术指南例子.zip

    读书笔记:NIO与Socket编程技术指南例子

    javaNIO.xmind

    自己总结的java中NIO的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者

    读书笔记:Java网络编程BIO、NIO、AIO.zip

    读书笔记:Java网络编程BIO、NIO、AIO

    读书笔记:java网络编程BIONIO, AIO 源码示例.zip

    读书笔记:java网络编程BIONIO, AIO 源码示例

    NIO+Netty5视频教程与Netty源码剖析视频教程

    第二部分:NIO+Netty5各种RPC架构实战演练 这部分课程将理论与实践相结合,让学习者在实际项目中运用Netty5构建不同类型的RPC(远程过程调用)架构。这涵盖了Netty5在RPC通信中的应用,如TCP、UDP协议的实现,以及...

Global site tag (gtag.js) - Google Analytics