十、多线程
10.1概述
- 进程
多任务同时执行,对于一个CPU而言,某个时间点只能运行一个程序,也就是说只能执行一个进程,操作系统会为每一个进程分配一段有限的CPU使用时间,CPU在这段时间中执行某个进程,然后在下一段时间切换到另一个进程中执行,CPU运行速度很快,极短的时间内在不同的进程之间切换,所以给人以同时执行多个程序的感觉。 - 线程
每个运行程序都是一个进程,一个进程中有多个执行单元同时运行,这些执行单元被称为线程。
10.1 线程的创建
-
Thread类
继承Thread类,重写Run方法
start方法启动新线程,虚拟机调用run方法。Java是类单继承,局限性很大! -
实现Runnable接口创建多线程
提供另一构造方法,内部只需传入传递一个实现了Runnable接口的实例对象,这样创建的线程将调用Runable接口的类中的run方法。 -
Runable优点
- 多程序代码处理同一资源的情况,把线程与程序代码、数据有效分离。
- 避免了单继承的局限性
10.2 线程的生命周期
- 新建状态
线程对象被创建,此时它不能运行,仅由虚拟机分配了内存。 - 就绪状态
调用start方法后进入就绪队列,没有获得CPU,等待系统调度 - 运行状态
获得CPU使用