Java编程中常用到的线程和注意点总结
创建线程方式
- 继承Thread类(Extends Thread):继承Thread类,覆盖run()方法,提供并发运程的过程。创建这个类的实例,使用start()方法启动线程。
- 实现Runnable接口(Implements Runnable):实现Runnable接口,实现run()方法,提供并发运程的过程。创建这个类的实例,用这个实例作为Thread构造器参数,创建Thread类,使用start()方法启动线程。
线程状态
- new运算创建线程后,线程进入New状态(初始状态)。
- 调用start()方法后,线程从New状态进入Runnable状态(就绪状态)。start()方法是在main()方法(Running状态)中调用的。
- 线程结束后,进入Dead状态(死亡状态),被对象垃圾回收。
- 线程进入Dead状态后,能被垃圾回收,不能再开始。
- 如果线程在运行过程中,自己调用了yield()方法,则主动由Running状态进入Runnable状态。
线程状态(英文) |
线程状态(中文) |
说明 |
---|---|---|
New |
新建状态 |
|
Runnable |
可运行(就绪)状态 |
当线程处于Runnable状态时,表示线程准备就绪,等待获取CPU。 |
Running |
运行状态 |
假如该线程获取了CPU,则进入Running状态,开始执行线程体,即run()方法中的内容。
说明:
|
Block |
阻塞(挂起)状态 |
当如下情况下,线程会进入阻塞状态:
|
Dead |
死亡状态 |
当线程的run()方法执行结束,线程进入Dead状态。
说明:
请不要对一个已经死亡的线程调用start()方法,线程死亡后将不能再次作为线程执行,系统会抛出IllegalThreadStateException异常。 |
父主题: 编程相关