线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指令运行时的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
线程生命周期的状态有5种,分别是:
1、创建 (new Thread)
当创建Thread的类的实例的时候,次线程就进入一个新建的状态,但是没有被启动。
例: Thread thread = new Thread();
2、就绪 (Runnable)
线程已经被启动,在等待给分配给CPU时间片,也就是说此时的线程正在就绪队列中排队等待得到CPU资源。
例:thread.start();
3、运行 (running)
线程获得CPU资源正在执行任务(run()方法进行),此时除非该线程自动放弃CPU资源或者有优先级更高的线程进入,否则直到该线程运行到结束为止。
4、死亡 (dead)
当线程执行完毕或被其他线程杀死,线程就进入死亡状态,这时该线程不可能进入就绪状态等待执行。
线程的终止分为两种情况:
(1)、自然终止:正常运行 “run()”方法后的终止;
(2)、异常终止:调用 “stop()”方法要一个线程终止运行时的终止;
5、阻塞 (blocked)
由于某种原因导致正在运行的线程让出CPU并暂停自己 执行,即进入阻塞状态;
正在睡眠:用“sleep(long t)” 方法可使线程进入睡眠方式。一个睡眠着的线程在指定的时间过去后可进入就绪状态;
正在等待:调用“wait()”方法。(调用“motify()”方法回到就绪状态);
被另一个线程所阻塞:调用“suspend()”方法。(调用“resume()”方法恢复);