Java 线程(一)

来源:互联网 发布:php收银系统 编辑:程序博客网 时间:2024/06/05 08:35

1. 使用Thread类创建线程,必须重写run()方法,使用start()方法来启动线程。

2. 使用线程接口创建新的线程使用接口Runnable,接口实现方式如:

class newThread implements Runnable{}
3. 线程所处状态

(1)新建状态(new)

创建一个新的线程,并没有使用start()方法启动,此线程处于新建状态。

(2)就绪状态(Runnable)

就绪状态的线程已经具备了运行的条件,但是由于没有获得时间片,因此进入线程队列等待。

(3)运行状态(Running)

a.线程完成程序执行后或者程序停止执行后,线程进入终止阶段

b.线程使用yield()方法,当前线程进入就绪状态。

c.线程使用sleep(), join(), wait()或者使用synchronized请求对象锁未获得通过,进入阻塞状态

(4)阻塞状态(Blocked)

a.调用sleep(),线程进入阻塞状态,当休眠时间到,即进入就绪状态。

b.主线程调用thread1.join(),主线程即进入阻塞状态,当thread1执行完毕或者等待时间到,主线程即进入就绪状态

c.线程调用wait()方法,线程即进入等待阻塞状态,可用notify(), notifyAll()或者被中断或者等待时间到,线程即进入对象锁阻塞就绪状态

d.使用同步关键字synchronized请求对象锁,未通过,进入对象锁阻塞状态,当获得对象锁时进入就绪状态。

(5)终止状态(Dead)

a.线程执行完毕,进入终止状态

b.调用stop()或者destory(),强制终止线程。

4.设置守护线程

一个线程结束时,其守护线程即使有语句要执行,也必须立即停止。

设置方式是setDaemon(true)。

0 0