- 博客(7)
- 收藏
- 关注
原创 Netty
Netty 能支撑百万级并发,不是因为它用了什么魔法而是因为它把 Reactor 模式 落实到了每一个细节,做到了极致咱们从解决问题的角度分析Netty是怎么一点点构成的1、传统BIO(同步阻塞)一个线程处理一个连接,那百万级连接需要百万个线程,不可能的。解决方案:引入 NIO + Selector selector:多路复用器,一个线程监听多个channel serverchannel:非阻塞通道 selectionKey:通道上的就绪事件这样一个线程可以管理成千上万个连接。2、解
2026-07-25 12:33:25
163
原创 网络IO编程:AIO、BIO、NIO
在前面的章节中,我们聚焦于 Java 并发的核心——线程之间的协作与控制锁、CAS、AQS、CountDownLatch、Semaphore……这些工具让我们能优雅地协调多个线程,避免数据错乱与资源争抢。真正的性能瓶颈,往往不在 CPU 内部的微秒级竞争,而在—— I/O。当线程发起一次数据库查询、读取一个网络数据包、或写入一个文件时,它可能要“空等”几十甚至几百毫秒。在这段时间里,线程被阻塞,无法执行其他任务,而系统却不得不为它保留一份宝贵的栈内存和调度开销。
2026-07-11 09:19:04
203
原创 线程池、CAS与AQS
多线程是一种编程思想,而 是实现这种思想的标准化工具箱。Executor是一个顶级接口,它定义了“提交任务”和“执行任务”的标准化协议,而线程池()是它最核心的实现。executor的简单范例:自定义线程池的核心就是 的构造函数,它有七个参数。 corePoolSize(核心线程数)定义:线程池中常驻的工作线程数量,即使它们空闲也不会被回收(除非设置了 allowCoreThreadTimeOut)。类比:餐厅的固定厨师。不管忙不忙,这几位厨师一直在岗。行为:提交任务时,如果当前线程数
2026-06-27 10:54:27
194
原创 从CPU空闲到并发:多线程是如何被“逼”出来的?
多线程不是一种“炫技”,而是计算机体系结构为了弥补CPU与I/O设备之间巨大速度鸿沟,被迫做出的一种妥协和优化。
2026-06-21 11:28:39
332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅