最新文章列表

Java NIO FileChannel

Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。   打开FileChannel 在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个InputStream、OutputStream或RandomAccessFile ...
春花秋月何时了 评论(0) 有1043人浏览 2016-10-08 14:18

Java NIO Buffer缓冲区

缓冲区简介 操作系统有用户空间与系统空间的概念,JVM对应的JAVA进程是位于用户空间的,处于该空间的进程不能直接访问硬件设备,当JAVA进程要进行I/O操作时,只能通过系统调用将控制权交给内核,内核准备好进程所需要的数据,将这些数据拷贝到用户空间缓冲区(如下图所示)。 Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。 ...
春花秋月何时了 评论(0) 有587人浏览 2016-10-08 14:12

JAVA NIO源码分析---总结篇

通过上一篇对JAVA NIO的源码分析,对一些重要的代码实现进行了探究,现将从源码分析中得出的结论总结如下。 一、源码分析流程梳理。 1.Selector.open() 获取选择器的时候,根据不同的操作系统创建Selector实现类,实现类创建了用于保存通道句柄和事件类型的数据结构PollArrayWrapper,如果是Windows系统将会创建一对相互连接的socket通道模拟管道用于唤醒 ...
春花秋月何时了 评论(0) 有568人浏览 2016-10-05 21:41

Java NIO源码分析

1.前言 JDK1.4之前的传统阻塞IO(BIO),服务端需要为每一个客户端连接创建单独的线程为其服务,从JDK1.4开始NIO非阻塞式IO出现,它只需要单独的一个线程就能接收多个客户端请求,而真正处理各个请求的细节可以使用多线程的方式高效率的完成,这些处理线程与具体的业务逻辑分离,做到了IO的复用。   2.源码分析 首先以一段典型的NIO使用代码开始:   Selector se ...
春花秋月何时了 评论(0) 有1985人浏览 2016-10-04 20:40

异步同步 oio nio aio 总结

异步:多线程干多件事,叫异步 同步:单线程干多件事,叫同步 oio:单线程中,connect,canRead,read,canWrite,write 5种操作有可能阻塞当前线程叫oio。为啥会有这种模型呢?因为系统底层遇到以上5种事件并不通知你,你都需要自己去等。 nio:单线程中,connect,canRead,canWrite 不阻塞当前线程,read和write 阻塞当前线程 叫nio。 ...
zhangming04 评论(0) 有1081人浏览 2016-09-30 14:14

浅析IO模型

也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor ...
IXHONG 评论(0) 有502人浏览 2016-09-18 13:08

Java NIO时间服务

Java NIO时间服务   这篇文章内容是另一篇文章《Java 实现基于Redis的分布式锁》的分支.    时间服务包括客户端和服务端, 服务端监听请求 ,若是时间请求,则返回当前服务器的时间, 各个客户端(分布式锁) 都从给服务器获取时间,已达到全局时间一致。   共三个类 TimeServer、 TimeClient和TimeClientException,下面是源码:   ...
莫名的拉风 评论(0) 有2235人浏览 2016-09-10 12:57

Linux I/O模型深入分析

    应用程序利用read,write系统调用对设备进行读写操作时,由于设备在实际的操作中响应速度各不相同,因此数据并不总是在任何时候都可用:对读操作来说,请求的数据还没有到达设备缓冲区,对于写操作,应用传递过来的数据也许不能一下子全部放进设备狭小的缓冲区,此时内核要么返回一个错误码给上层,要么让发起读写操作的进程进入等待状态。 1,struct file_operations:Linux设 ...
leilianjie 评论(0) 有454人浏览 2016-09-04 15:56

API笔记之java.nio.channels.Selector

API笔记之java.nio.channels.Selector import java.io.Closeable; import java.io.IOException; import java.nio.channels.spi.SelectorProvider; import java.util.Set; /** * * A multiplexor of {@lin ...
莫名的拉风 评论(0) 有894人浏览 2016-08-27 13:11

API笔记之java.nio.channels.SelectionKey

API笔记之java.nio.channels.SelectionKey   import java.nio.channels.SelectableChannel; import java.nio.channels.Selector; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; /** * A ...
莫名的拉风 评论(0) 有957人浏览 2016-08-27 13:10

Buffer类详解

        Buffer 类是 java.nio 的构造基础。一个 Buffer 对象是固定数量的数据的容器,其作用是一个存储器,或者分段运输区,在这里,数据可被存储并在 ...
bijian1013 评论(0) 有3700人浏览 2016-06-28 23:29

【原创】NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战

前言 本文将演示一个iOS客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo。服务端将分别用MINA2和Netty4进行实现,而通信时服务端你只需选其一就行了。同时用MINA2和Netty4分别实现服务端的目的,是因为很多人都在纠结到底是用MINA还是Netty来实现高并发的Java网络通信服务端,在此干脆两个都实现了,就看你怎么选择了,够吊吧。NIO ...
jb2011 评论(0) 有240人浏览 2016-06-28 17:37

【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示

 学习交流 更多即时通讯学习资料:点此进入,移动端即时通讯交流Q群:215891622   前言 NIO框架的流行,使得开发大并发、高性能的互联网服务端成为可能。这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2、而Netty的主要版本是Netty3和Netty4(Netty5已经被取消开发了:详见此文)。本文将演示的是一个基于MINA2的UDP服务端和 ...
jb2011 评论(0) 有159人浏览 2016-06-24 16:17

文件的拷贝Util

package com.tianmushanlu.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import jav ...
远东之夜 评论(0) 有476人浏览 2016-06-19 16:07

java nio Selector(多路复用,异步阻塞)例子

package znio; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java ...
Kinghoo 评论(0) 有906人浏览 2016-05-25 00:23

Java io nio netty三种方式实现简单聊天功能

  netty和nio的比较: http://news.cnblogs.com/n/205413/    一:首先是Java IO:   Server:    package com.tch.test.chat.io; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...
dreamoftch 评论(0) 有3321人浏览 2016-05-23 11:15

JDK1.7 NIO.2 读写遍历文件树

使用jdk7 nio.2遍历文件夹里所有文件 首先需要写FileHandler类,继承SimpleFileVisitor<Path> 根据需要重写SimpleFileVisitor里面的方法 比如,访问文件前做些什么,访问文件时做些什么,访问后做些什么 例子中的这行就是遍历每个文件时做的事情,打印一下文件的路径 System.out.println("Visitin ...
NeverFlyAway 评论(0) 有1128人浏览 2016-05-08 15:27

【转】JAVA 中 BIO, NIO, AIO 的理解

原文转自:JAVA 中 BIO, NIO, AIO 的理解
dsxwjhf 评论(0) 有698人浏览 2016-05-03 16:30

【转】 NIO 入门

IBM NIO 入门 ifeve Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六) Selector Java NIO系列教程(七) FileChann ...
dsxwjhf 评论(0) 有608人浏览 2016-04-28 18:42

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics