技术栈实现
每个知识点包含概念说明、算法流程 UML,以及可对照阅读的 Java、Python 例程。
覆盖多线程、线程池、Socket 通信、编码、线程安全类和生产者-消费者。
1. 多线程编程
线程如何创建,经历哪些状态,以及休眠与唤起的差别。
2. 线程池应用
用固定大小的线程池复用线程,而不是每个任务都 new 一个线程。
3. Socket 编程
TCP 上的服务器与客户端,以及短连接、长连接和心跳。
4. Socket 承载应用
用同一套 TCP Socket 承载一个最小 Web 服务器和一个最小 FTP 命令通道。
5. Socket 编码问题
TCP 只搬字节。中文和消息边界都要在应用层约定编码。
6. Socket 多线程
监听线程只负责 accept,每个连接交给线程池里的工人处理。
7. 线程安全类
多个线程共享的计数器、映射和队列,使用语言提供的线程安全容器。
8. 生产者-消费者
生产者把数据放进有界队列,消费者取走处理。队列满或空时线程休眠。
9. 生产者-消费者(订阅与推送)
发布者推送一次,每个订阅者从自己的队列里收到一份。