本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
高性能 IO 设计 Reactor 模式
传统的服务器设计是:一连接一处理线程,也就是我们常说的 BIO 编程。BIO 在读取和发送时是阻塞的,在请求的整个生命周期内,不管有没有数据可读或待发送,都绑定和占用了这个处理线程。
BIO 多线程并发模式,一个连接一个线程的优点是:
一定程度上极大地提高了服务器的吞吐量,因为之前的请求在read阻塞以后,不会影响到后续的请求,因为他们在不同的线程中。这也是为什么通常会讲“一个线程只能对应一个 ...
Java基础之:nio
一、理论讲解:
史上最强Java NIO入门:担心从入门到放弃的,请读这篇!
https://www.cnblogs.com/imstudy/p/11108085.html
二、代码实战:
Java NIO?看这一篇就够了!
https://mp.weixin.qq.com/s/c9tkrokcDQR375kiwCeV9w
Java网络通信基础-BIO
分享一下关于Java网络通讯方面的内容. 下载地址:https://github.com/mldn/echo
Java基础知识:BIO、NIO、AIO三者的技术实现,以及彼此之间的区别
Netty:TCP 程序实现为主,代码的核心:Echo程序模型,通过网络实现一个基础的Echo。
一.BIO模型
同步阻塞IO处理
在程序的开发之中Java里面最小的处理单元就是线程 ...
【Java NIO 简例】AsynchronousFileChannel
原文:《Java NIO AsynchronousFileChannel》
AsynchronousFileChannel 使得异步读写文件成为可能。此教程将解释如何使用该类。
创建一个 AsynchronousFileChannel
可通过 AsynchronousFileChannel.open() 方法创建实例:
Path path = Paths.get("C ...
【Java NIO 简例】Files
原文:《Java NIO Files》
Java NIO 的 Files 类(java.nio.file.Files)提供了多个方法用于操纵文件系统中的文件。此教程包含这些方法中最常用的几个。Files类 ...
【Java NIO 简例】Path
原文:《Java NIO Path》
Java NIO Path 接口是 NIO 2 更新的一部分。其全称为 java.nio.file.Path。
一个 Path 实例表示文件系统中的一个路径(path)。path 可以 ...
【Java NIO 简例】NIO vs IO
原文:《Java NIO vs. IO》
当学习Java NIO 和 IO 的API时,很快会遇到一个问题: 什么时候用IO,什么时候用NIO?
我会尝试在本文提供一些关于Java NIO 与 IO ...
【Java NIO 简例】Pipe
原文:《Java NIO Pipe》
Java NIO 的 Pipe 是一个线程间的单向数据连接。一个Pipe有一个 source channel 和 一个 sink channel。你可以向 sink channel 写入数据。这些数据可以从 source channel 中被读出。
简化结构如下:
创建Pipe
Pipe pipe = Pipe.open();
...
【Java NIO 简例】DatagramChannel
原文:《Java NIO DatagramChannel》
DatagramChannel是可以发送与接收UDP数据包的channel。因为UDP是无连接的网络协议,所以你不能像操作其它channel那样对其读写。你需要发送或接收数据包。
开启DatagramChannel
DatagramChannel channel = DatagramChannel.open();
c ...
【Java NIO 简例】非阻塞服务端
原文:《Java NIO: Non-blocking Server》
GitHub 上的实例代码
https://github.com/jjenkov/java-nio-server
非阻塞IO管道
非阻塞IO管道是一系列组件的链接。简化结 ...
【Java NIO 简例】ServerSocketChannel
原文:《Java NIO ServerSocketChannel》
Java NIO 中的 ServerSocketChannel 用于在TCP通信中监听来自客户端的连接。
开启 ServerSocketChannel
ServerSocketChannel channel = ServerSocketChannel.open();
关闭 ServerSocket ...
【Java NIO 简例】SocketChannel
原文:《Java NIO SocketChannel》
Java NIO 中的 SocketChannel 用于处理 TCP 网络连接。
开启 SocketChannel
示例:连接远程服务器
SocketChannel channel = SocketChannel.open();
channel.connect(new InetSocketAddress("ab ...
【Java NIO 简例】FileChannel
注:利用 FileChannel.transferTo 和 FileChannel.transferFrom 方法可以更高效地读写文件。
(《FileChannel 数据传输》)
原文:《Java NIO FileChannel》
Java NIO 中的 FileChannel 可用于读写文件。FileChannel 总是以 阻塞 模式运行,不支持非阻塞模式。
开启 File ...
【Java NIO 简例】Selector
原文:《Java NIO Selector》
Selector 可以检查多个 Channel 实例,发现那些已经就绪,可以读/写的 Channel。通过这个机制,可以实现 单线程处理多个Channel,从而处理多个网络连接。
为什么要使用 Selector ?
对操作系统来说,线程之间的切换代价较高,而且每个线程都会占用一些内存资源。所以线程越少越好。而利用Select可以实现只 ...
【Java NIO 简例】FileChannel 数据传输
原文:《Java NIO Channel to Channel Transfers》
FileChannel 的 transferFrom 和 transferTo 方法可以方便地将数据传入 FileChannel(写文件)或 读取 FileChannel 中的数据(读文件)
这两个方法比简单的 循环 读取-写入 更高效。因为许多操作系统能直接将 源Channel 中的数据传输到 文件 ...