Java多线程机制
线程是一个程序内部的顺序控制流:一个进程相当于一个任务,一条线程相当于这个任务里的一条执行路径。多进程是操作系统同时跑多个程序;多线程是同一个应用程序里有多条顺序流同时执行。Java 的线程通过 java.lang.Thread 实现。 JVM 启动时会有一个由 public static void…
线程是一个程序内部的顺序控制流:一个进程相当于一个任务,一条线程相当于这个任务里的一条执行路径。多进程是操作系统同时跑多个程序;多线程是同一个应用程序里有多条顺序流同时执行。Java 的线程通过 java.lang.Thread 实现。 JVM 启动时会有一个由 public static void…
继「多线程程序模型研究」之后,再给出一个更复杂、但功能比较完整、可以直接套用的线程池。实例改写自 Apache 项目源码(原文约 800 行,跑在 Tomcat 等服务器上),这里做了精简,只留核心,并配测试类。 学完可以直接模仿套用,不必自己从零再写一遍池。关键两块:线程池类 ThreadPool…
多线程是复杂程序里几乎躲不开的一块。为了把运行性能拉上来,把工作拆成多条线程是常见做法。下面用扫描主机端口的例子,把单线程、一端口一线程、以及两种线程池模型都走一遍。 阅读前提:有一定 Java 基础,对 Socket 不陌生。原文程序在 Java SDK 1.4.2 下编译运行通过。 一、单线程扫…
从学 Java 才真正碰到 OOP。习惯用 C 的人,往往会嫌 Java 慢、代码长、一件小事要拆好多类。抵触很正常;真正别扭的,是不知道该怎么提炼类,一不小心又滑回过程式思路。 面向对象的精髓,是从现实世界的人类思维习惯出发:先谈业务要什么,再翻译成程序能懂的结构。封装的是业务逻辑,不是 sele…