1.Channel接口的定义:
public interface Channel
{
        public boolean isOpen( );
        public void close( ) throws IOException;
}

2.Channel的常见类型:
FileChannel,  SocketChannel, ServerSocketChannel, and DatagramChannel;
FileChannel通过RandomAccessFile, FileInputStream,  FileOutputStream的getChannel( )来初始化。
SocketChannel sc = SocketChannel.open( );
sc.connect (new InetSocketAddress ("somehost", someport));
ServerSocketChannel ssc = ServerSocketChannel.open( );
ssc.socket( ).bind (new InetSocketAddress (somelocalport));
DatagramChannel dc = DatagramChannel.open(  );

3.Scatter/Gather,必须使用ByteBuffer.allocateDirect(100)
public interface ScatteringByteChannel extends ReadableByteChannel {
        public long read (ByteBuffer [] dsts)  throws IOException;
        public long read (ByteBuffer [] dsts, int offset, int length)  throws IOException;
}
public interface GatheringByteChannel extends WritableByteChannel {
        public long write(ByteBuffer[] srcs) throws IOException;
        public long write(ByteBuffer[] srcs, int offset, int length) throws IOException;
}

4.file lock是和file相关,而不是channel。可以对进程有效,而不是线程。可以通过内存映射文件(memory-mapped file)来实现线程同步
5.buffer = fileChannel.map (FileChannel.MapMode.READ_ONLY, 100, 200);
6.MappedByteBuffer are direct. load( )将整个文件加载到内存(改方法不能保证完成)。force( )将数据flush到硬盘。
7.未绑定端口的DatagramChannel系统会自动分配端口。DatagramChannel的connect(),将保证只接受指定源地址的数据包。这时候,可以使用普通的read和write方法,包括Scatter/Gather

Java中channel的应用总结相关推荐

  1. java中channel的作用,java.nio.channels包中的FileChannel类的作用是()。

    一旦计算机感染了病毒,即使用防病毒程序检测到它,如果不进行计算机的全部扫描,也不可能做到完全无毒. Koreaisnolongeradeveloping country,butPeoplestillp ...

  2. java io类型_Java NIO之Java中的IO分类

    前言 前面两篇文章(Java NIO之理解I/O模型(一).Java NIO之理解I/O模型(二))介绍了,IO的机制,以及几种IO模型的内容,还有涉及到的设计模式.这次要写一些更贴近实际一些的内容了 ...

  3. channel java_Java中channel用法总结

    本文实例总结了Java中channel用法.分享给大家供大家参考.具体分析如下: 1.Channel接口的定义: public interface Channel { public boolean i ...

  4. 常见的 IO 模型有哪些?Java 中 BIO、NIO、AIO 的区别?

    IO 模型这块确实挺难理解的,需要太多计算机底层知识.写这篇文章用了挺久,就非常希望能把我所知道的讲出来吧!希望朋友们能有收货!为了写这篇文章,还翻看了一下<UNIX 网络编程>这本书,太 ...

  5. Java中的I/O模型总结(八股文自述)

    Java中的I/O模型 BIO: 是指应用程序在执行 I/O 操作后,如果没有获得响应,就会阻塞当前线程,不能执行其他任务. 同步阻塞 I/O 模式,数据的读取写⼊必须阻塞在⼀个线程内等待其完成.在活 ...

  6. Java中如何锁文件

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | liululee 来源 | 公众号「锅外的大佬 ...

  7. 操作系统中的零拷贝与java中的使用

    下面是在Linux操作系统中将磁盘中的数据传输到网络设备上的示例图. 在图中可以看到数据先从磁盘上读取到用户空间而后再从用户空间写入到网络设备中,写入和读取一共经历四次拷贝,和四次状态的切换(用户到内 ...

  8. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...

    本文已经收录自 https://github.com/Snailclimb/JavaGuide  (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...

  9. Java NIO学习系列六:Java中的IO模型

    前文中我们总结了linux系统中的5中IO模型,并且着重介绍了其中的4种IO模型: 阻塞I/O(blocking IO) 非阻塞I/O(nonblocking IO) I/O多路复用(IO multi ...

最新文章

  1. Android ProgressBar 加载中界面实现(loading 动画) 实现菊花的效果
  2. mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer
  3. 【学习笔记】24、文件的其他操作
  4. Mysql自增列,并发插入时导致死锁的问题
  5. 【清单】值得「等待」的12个指示加载状态的 js 库
  6. 创业活动平台,2019路演活动报名网站
  7. 使用kubectl管理k8s集群(三十)
  8. c语言编程软件开机自动启动,C语言实现程序开机自启动
  9. GITC 2014全球互联网技术大会正式开始
  10. 微信JS SDK网页接口
  11. c语言编译器 for mac,编译工具CMake for mac
  12. 介绍两种常见软件开发模式:“敏捷”和“瀑布”
  13. 教室计算机广播控制,小学智能广播系统(模拟广播)系统解决方案
  14. AD domain 环境下VBS自动生成邮件签名
  15. [fyne] build constraints exclude all Go files in
  16. 微信小程序中使用全局变量解决页面的传值问题
  17. 将uchar转换为Mat并显示出来
  18. JAVA实现动态数组【代码】
  19. 修改flinksql已经定义表的表结构
  20. 中南大学转专业计算机名单,中南大学2010级优秀本科生转专业名单

热门文章

  1. 一款专注于销售人员拜访管理的APP
  2. CSS 背景鼠标滑过,提示文字
  3. 计算机ntc中国教育考试网,中国教育考试网ntcecf1.neea.edu.cn-北京2018教师资格证笔试成绩查询...
  4. Python 编写max()函数
  5. 使用校园网,下载知网资料
  6. 2020科目一考试口诀_科目一考试技巧口诀顺口溜大全,看一遍就能记住,轻松一次过!...
  7. 华为linux改ip地址,ubuntu9.10校园网上网配置详细教程(华为h3c,mac地址绑定)
  8. Polkadot 波卡交易所对接资料收集以及测试/公链部署参考
  9. HBase 高可用集群整合 Phoenix 配置
  10. 谷歌临时工成二等公民 ,部分人年薪仅 3万美元