摘要: 一 类图 二 构造方法 // LinkedBlockingQueue.java // take锁 private final ReentrantLock takeLock = new ReentrantLock(); // put锁 private final ReentrantLock putLo 阅读全文
posted @ 2022-11-22 20:53 Bannirui 阅读(58) 评论(0) 推荐(0)
摘要: 一 阻塞队列API | | Throws exception | Special value | Blocks | Times out | | | | | | | | Insert | add(e) | offer(e) | put(e) | offer(e, time, unit) | | Rem 阅读全文
posted @ 2022-11-22 16:48 Bannirui 阅读(40) 评论(0) 推荐(0)
摘要: 一 Executors工具类创建ThreadPoolExecutor | | SingleThreadExecutor | newFixedThreadPool | newCachedThreadPool | newScheduledThreadPool | newSingleThreadSched 阅读全文
posted @ 2022-11-21 23:14 Bannirui 阅读(112) 评论(0) 推荐(0)
摘要: 前言 之前使用的openjdk11调试JVM源码和Java源码是分开的,而且各自都有不足之处 openjdk在Clion引入头文件飘红 Java源码换行注释导致class和src对应不上 因此重新使用openjdk15解决上述问题 大于openjdk11u的源码中都含有CompileCommands 阅读全文
posted @ 2022-11-19 22:48 Bannirui 阅读(114) 评论(0) 推荐(0)
摘要: 一 Demo public class ThreadTest00 { public static void main(String[] args) { Thread t0 = new Thread(() -> System.out.println("biz thread..."), "t0"); / 阅读全文
posted @ 2022-11-17 15:23 Bannirui 阅读(113) 评论(0) 推荐(0)
摘要: 一 源码 二 系统工具 macOS Big Sur 11.5.2 Xcode 12.5.1 openjdk 11.0.11 Make 3.81 autoconf (GNU Autoconf) 2.71 Apple clang version 12.0.5 (clang-1205.0.22.11) c 阅读全文
posted @ 2022-11-17 11:46 Bannirui 阅读(171) 评论(0) 推荐(0)
摘要: 有过之前对服务端bind流程的分析之后,客户端的connect流程就显得简单了 一 入口 // Bootstrap.java public ChannelFuture connect(String inetHost, int inetPort) { // 异步 return this.connect 阅读全文
posted @ 2022-11-16 22:34 Bannirui 阅读(118) 评论(0) 推荐(0)
摘要: 研究服务端的启动流程 一 入口 // AbstractBootstrap.java /** * 异步非阻塞方法 * - 异步 比如main线程发起调用 真正的bind结果main线程并不是直接去取 而是将来真正bind成功的线程将结果回调 * - 非阻塞 比如main线程发起调用 最后真正执行bin 阅读全文
posted @ 2022-11-16 22:33 Bannirui 阅读(157) 评论(0) 推荐(0)
摘要: 在Channel的初始化过程中会给每个Channel实例构造一个Pipeline,因此研究pipeline的入口就是构造方法 一 类图 是继承关系上看,pipeline的实现比较简单 二 JavaDoc Netty采用Reactor的线程模型,一个IO线程负责读写,至于怎么操作读写的逻辑则定义在不同 阅读全文
posted @ 2022-11-16 22:31 Bannirui 阅读(65) 评论(0) 推荐(0)
摘要: Netty为了提高系统的吞吐,大量使用异步线程模型 一 Demo public class FutureTest00 { public static void main(String[] args) throws InterruptedException, ExecutionException { 阅读全文
posted @ 2022-11-16 22:29 Bannirui 阅读(64) 评论(0) 推荐(0)