首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
用户5488193880519
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
用户5488193880519
2年前
关注
5.3 零拷贝
传统的 IO 将一个文件通过 socket 写出 File f = new File("helloword/data.txt"); RandomAccessFile fil...
0
评论
分享
用户5488193880519
2年前
关注
5. NIO vs BIO
5.1 stream vs channel stream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层) stream 仅支持阻塞 A...
0
评论
分享
用户5488193880519
2年前
关注
4.7 UDP
UDP 是无连接的,client 发送数据不会管 server 是否开启 server 这边的 receive 方法会将接收到的数据存入 byte buffer,但如果数据...
0
评论
分享
用户5488193880519
2年前
关注
利用多线程优化
前面的代码只有一个选择器,没有充分利用多核 cpu,如何改进呢? 分两组选择器 单线程配一个选择器,专门处理 accept 事件 创建 cpu 核心数的线程,每个线程配一个...
0
评论
分享
用户5488193880519
2年前
关注
ByteBuffer 大小分配
每个 channel 都需要记录可能被切分的消息,因为 ByteBuffer 不能被多个 channel 共同使用,因此需要为每个 channel 维护一个独立的 Byte...
0
评论
分享
用户5488193880519
2年前
关注
💡 为何要 iter.remove()
因为 select 在事件发生后,就会将相关的 key 放入 selectedKeys 集合,但不会在处理完后从 selectedKeys 集合中移除,需要我们自己编码删除...
0
评论
分享
用户5488193880519
2年前
关注
4.4 处理 read 事件
@Slf4j public class ChannelDemo6 { public static void main(String[] args) { try (Serve...
0
评论
分享
用户5488193880519
2年前
关注
4.3 处理 accept 事件
public class Client { public static void main(String[] args) { try (Socket socket = ne...
0
评论
分享
用户5488193880519
2年前
关注
4.2 Selector
创建 Selector selector = Selector.open(); 绑定 Channel 事件 也称之为注册事件,绑定的事件 selector 才会关心 cha...
0
评论
分享
用户5488193880519
2年前
关注
多路复用
单线程可以配合 Selector 完成对多个 Channel 可读写事件的监控,这称之为多路复用 多路复用仅针对网络 IO、普通文件 IO 没法利用多路复用 如果不用 Se...
0
评论
分享
用户5488193880519
2年前
关注
非阻塞
非阻塞模式下,相关方法都会不会让线程暂停 在 ServerSocketChannel.accept 在没有连接建立时,会返回 null,继续运行 SocketChannel...
0
评论
分享
用户5488193880519
2年前
关注
4. 网络编程
4.1 非阻塞 vs 阻塞 阻塞 阻塞模式下,相关方法都会导致线程暂停 ServerSocketChannel.accept 会在没有连接建立时让线程暂停 SocketCh...
0
评论
分享
用户5488193880519
2年前
关注
拷贝多级目录
long start = System.currentTimeMillis(); String source = "D:\Snipaste-1.16.2-x64"; Str...
0
评论
分享
用户5488193880519
2年前
关注
删除多级目录
Path path = Paths.get("d:\a"); Files.walkFileTree(path, new SimpleFileVisitor(){ @Over...
0
评论
分享
用户5488193880519
2年前
关注
统计 jar 的数目
Path path = Paths.get("C:\Program Files\Java\jdk1.8.0_91"); AtomicInteger fileCount = ...
0
评论
分享
用户5488193880519
2年前
关注
遍历目录文件
public static void main(String[] args) throws IOException { Path path = Paths.get("C:\...
0
评论
分享
用户5488193880519
2年前
关注
files 2
移动文件 Path source = Paths.get("helloword/data.txt"); Path target = Paths.get("helloword...
0
评论
分享
用户5488193880519
2年前
关注
3.4 Files
检查文件是否存在 Path path = Paths.get("helloword/data.txt"); System.out.println(Files.exists(...
0
评论
分享
用户5488193880519
2年前
关注
3.3 Path
jdk7 引入了 Path 和 Paths 类 Path 用来表示文件路径 Paths 是工具类,用来获取 Path 实例 Path source = Paths.get(...
0
评论
分享
用户5488193880519
2年前
关注
3.2 两个 Channel 传输数据
String FROM = "helloword/data.txt"; String TO = "helloword/to.txt"; long start = Syste...
0
评论
分享
下一页
个人成就
文章被阅读
2,018
掘力值
28
关注了
0
关注者
0
收藏集
0
关注标签
0
加入于
2023-09-25