- 概念
下面是百度百科关于进程和线程的说明:
进程:进程是线程的容器,进程是正在运行的程序的实例。它是活动的且有状态变化的。
在三态模型中,进程状态分为三个基本状态,即运行态,就绪态,阻塞态。
在五态模型中,进程分为新建态、终止态,运行态,就绪态,阻塞态。
通常,一个进程在创建后将处于就绪状态。
(1)运行(running)态:进程占有处理器正在运行。
(2)就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行。
(3)等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。
线程:线程是程序执行的最小单元,线程是进程中的一个实体,具有就绪,阻塞和运行三种基本状态。
一个进程可以有很多线程,每条线程并行执行不同的任务。
多线程编程中需要考虑的问题:什么是竞争资源、什么时候考虑同步、怎么同步。
通常需要考虑的设计有:
(1)把竞争访问的资源标识为private,禁止直接访问。
(2)通过volatile关键字作用于共享变量,保证变量在多个线程之间的可见性,以及防止指令重排序。
(3)同步那些修改变量的代码,使用synchronized 关键字同步方法或代码,或者使用ReenTrantLock可重入锁。
TODO.....