07 2021 档案
摘要:多人聊天客户端 服务端 public class Server { private ServerSocketChannel servSocketChannel; private Selector selector; /** * 初始化服务器 * */ public Server(){ try { s
阅读全文
摘要:Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器。 一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。 1
阅读全文
摘要:1. Selector Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。 1.1 为什么使用Selector? 仅用单个线程来处理多个Channels的好处
阅读全文
摘要:NIO NIO 最初是为 New Input/Output 的缩写。然而,Java 的 API 已经存在足够长的时间,它不再是新的。现在普遍使用的缩写来表示Nonblocking I/O (非阻塞 I/O)。另一方面,一般(包括作者)指阻塞 I/O 为 OIO 或 Old Input/Output。
阅读全文
摘要:Netty 是一个利用 Java 的高级网络的能力,隐藏了Java背后的复杂性然后提供了一个易于使用的 API 的客户端/服务器框架。 高性能 扩展性强 在网络发展初期,需要花很多时间来学习 socket 的复杂,寻址等等,在 C socket 库上进行编码,并需要在不同的操作系统上做不同的处理。
阅读全文
摘要:forkJoin 阿里巴巴2021版JDK源码笔记(2月第三版).pdf 链接:https://pan.baidu.com/s/1XhVcfbGTpU83snOZVu8AXg 提取码:l3gy 在大学的算法课本中,都有一种基本算法:分治。其基本思路 是:将一个大的任务分为若干个子任务,这些子任务分别
阅读全文
摘要:线程池与Future 阿里巴巴2021版JDK源码笔记(2月第三版).pdf 链接:https://pan.baidu.com/s/1XhVcfbGTpU83snOZVu8AXg 提取码:l3gy 1. 线程池的实现原理 调用方不断地向线程池中提交任 务;线程池中有一组线程,不断地从队列中取任务,这
阅读全文
摘要:同步工具类 阿里巴巴2021版JDK源码笔记(2月第三版).pdf 链接:https://pan.baidu.com/s/1XhVcfbGTpU83snOZVu8AXg 提取码:l3gy 除了锁与 Condition,Concurrent 包还提供了一系列同步工具 类。这些同步工具类的原理,有些也是
阅读全文
摘要:Lock与Condition 阿里巴巴2021版JDK源码笔记(2月第三版).pdf 链接:https://pan.baidu.com/s/1XhVcfbGTpU83snOZVu8AXg 提取码:l3gy 1. 互斥锁 1.1 锁的可重入性 当一个线程调用 object.lock()拿到锁,进入互斥
阅读全文
摘要:原子类 阿里巴巴2021版JDK源码笔记(2月第三版).pdf 链接:https://pan.baidu.com/s/1XhVcfbGTpU83snOZVu8AXg 提取码:l3gy concurrent包的结构层次:Atomic类 → 锁与条件 → 同步工具 → 并发容器 → 编程池 → Cpmp
阅读全文
摘要:多线程基础 阿里巴巴2021版JDK源码笔记(2月第三版).pdf 链接:https://pan.baidu.com/s/1XhVcfbGTpU83snOZVu8AXg 提取码:l3gy 1. 线程的优雅关闭 1. 1运行中的线程能否强制杀死? 不能,如果强制 杀死线程,则线程中所使用的资源,例如文
阅读全文

浙公网安备 33010602011771号