
Java-NIO
airu
这个作者很懒,什么都没留下…
展开
-
JavaNIO-通道
Channel这里的Channel接口很细。一个Channel能做什么呢?[code="java"]package java.nio.channels; public interface Channel { public boolean isOpen( ); public void close( ) throws IOException; }[/code]很简单...2012-04-29 18:15:19 · 135 阅读 · 0 评论 -
JavaNIO-文件通道
文件通道,是一种特殊的通道。对于文件通道来说,是不能阻塞的。所以并不能设置非阻塞模式。对于异步文件I/O来说,这是很多操作系统支持的,NIO也会增强。一个FileChannel只能从RandomAccessFile,FileInputStream和FileOutputStream来获取(getChannel),然后你就获得了某种能力,请看:[code="java"]pack...原创 2012-04-30 23:32:17 · 144 阅读 · 0 评论 -
学习JavaNIO-文件内存映射
...文件映射有个需要注意的问题,就是你无法确保他被释放了。也就是只有映射的内存被回收,文件才会被释放。否则其他进程访问就是被锁状态。所以这个对于一个进程一个文件。如果多个进程访问一个文件,还是不是很适合。最近看了文件内存映射。在NIO中,使用起来很方便。文件通过内存映射以后,访问速度自然是提高了。当然也有很多问题,现在我们来看看NIO中的内存映射文件。[code=...2012-05-16 23:03:19 · 137 阅读 · 0 评论 -
Java-NIO-Selector
Selector 的出现,大大改善了多个 Java Socket的效率。在没有NIO的时候,轮询多个socket是通过read阻塞来完成,即使是非阻塞模式,我们在轮询socket是否就绪的时候依然需要使用系统调用。而Selector的出现,把就绪选择交给了操作系统(我们熟知的selec函数),把就绪判断和读取数据分开,不仅性能上大有改善,而且使得代码上更加清晰。Java NIO的选择器部分...原创 2012-07-16 22:52:28 · 144 阅读 · 0 评论 -
NIO 再复习
java 的IO,在cpu越来越牛逼过程中,渐渐变得不协调了。cpu超快,性能都卡在IO上了。书上比喻:操作系统用卡车运数据,Java IO用铲子铲。。。很形象。有人说,我们可以通过JNI来提升IO啊,但是如果这样,我们就牺牲了java平台的独立性。你的代码就要和具体的操作系统绑定了。NIO通过新的设计和直接内存访问,提供高速IO。具体的NIO到底如何提升java的IO,呢,我们下面就深入...原创 2012-03-19 22:54:05 · 126 阅读 · 0 评论 -
Java-NIO-缓冲区基础
NIO中,有自己设计的一套缓冲区系统。使用I/O,离不开缓冲区,高效的缓冲区,往往起到事半功倍的效果。下面就看看NIO中的缓冲区是如何设计的。首先,我们是针对概念来说明缓冲区的属性。缓冲区的四个属性:1、[b]容量[/b](Capacity)这是一个缓冲区被创建后的固定属性,不可改变。代表该缓冲区的最大容量。2、[b]上界[/b](Limit)这个表明当前缓冲区中的元素...2012-04-15 17:49:44 · 122 阅读 · 0 评论 -
Java NIO 缓冲区基础二
上一篇讲了基本的缓冲区概念,以及NIO的缓冲区属性以及部分操作。现在让我们在看看缓冲区的一些细节。1、缓冲区的创建之前也许你已经看到了。我们使用alocate方法创建一个缓冲区。下面是一个创建方法集合。[code="java"]public abstract class CharBufferextends Buffer implements CharSequence, Co...2012-04-16 16:07:28 · 124 阅读 · 0 评论