线程 - 工作原理 线程 线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程
线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源
进程可以创建和撤消线程,从而实现程序的并发执行
一般,线程具有就绪、阻塞和运行三种基本状态
在多中央处理器的系统里,不同线程可以同时在不同的中央处理器上运行,甚至当它们属于同一个进程时也是如此
大多数支持多处理器的操作系统都提供编程接口来让进程可以控制自己的线程与各处理器之间的关联度(affinity)
有时候,线程也称作轻量级进程
就象进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变量
但是,与分隔的进程相比,进程中的线程之间的隔离程度要小
它们共享内存、文件句柄和其它每个进程应有的状态
进程可以支持多个线程,它们看似同时执行,但互相之间并不同步
一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的变量和对象,而且它们从同一堆中分配对象
尽管这让线程之间共享信息变得更容易,但您必须小心,确保它们不会妨碍同一进程里的其它线程
Java 线程工具和 API 看似简单
但是,编写有效使用线程的复杂程序并不十分容易
因为有多个线程共存在相同的内存空间中并共享相同的变量,所以您必须小心,确保您的线程不会互相干扰
[1] 线程 - 线程的概念 一般来说,我们把正在计算机中执行的程序叫做"进程"(Process) ,而不将其称为程序(Program)
所谓"线程"(Thread),是"进程"中某个单一顺序的控制流
新兴的操作系统,如 Mac,Windows NT,Windows 95等,大多采用多线程的概念,把线程视为基本执行单位
线程也是Java中的相当重要的组成部分之一
甚至最简单的Applet也是由多个线