关于线程

一、进程和线程

进程是一个程序的运行状态和资源占用的描述。
线程:一个进程包含多个线程,每个线程都有特定的子任务完成。

二、线程的状态

1. 创建状态:线程被创建出来未调用start方法,此时的线程就处于创建状态。
2. 就绪状态:线程调用了start方法,线程进入就绪状态。
3. 运行状态:当cpu调度了处于就绪状态的线程,线程进入运行状态。
4. 阻塞状态:当线程由于某种原因失去了对cpu的使用权,此时进入阻塞状态,阻塞状态有等待阻塞(wait),同步阻塞(synchronize),其他阻塞(sleep,join)。
5. 死亡状态: 当线程执行完了run方法或者或者因为异常退出run方法,此线程的生命周期结束。

三、创建线程

1. 继承Thread类
创建一个类继承Thread类,并重写run方法,创建一个继承类对象,调用run方法。
关于线程
2. 实现Runnable接口
创建一个类实现Runnable接口,并实现run方法,创建实现类对象,将实现类对象作为实际参数传递给Thread的构造方法,调用Thread类的start方法。
关于线程
3. 通过Callable 和FutureTask
创建一个类实现Callable接口,实现call方法,将实现类作为实际参数传递到FutureTask的构造函数,得到FutureTask的对象,再将FutureTask的对象作为实际参数传递到Thread的构造方法中,调用Thread的start方法。
关于线程

四、线程池

线程池是管理线程的容器,先启动若干线程,并让这些线程都处于睡眠状态,当客户请求时,线程池就会唤醒某一个线程去处理客户的请求,请求执行完毕,线程又进入睡眠状态。