在java语言中,可以采用两种方式产生线程:
- 通过继承Thread类构造线程。
- 实现一个Runnable接口。
此处仅讨论第一种方面,通过此方法创建一个线程的步骤:
- 创建一个扩展(extends)Thread类
- 用要在这个线程中执行的代码覆盖Thread类的run()方法
- 用关键字new创建所定义的线程类的一个对象
- 调用该对象的start()方法启动线程
线程启动后自动执行run()方法,执行完毕后进入终止状态。java中有关线程暂停和恢复的几个方法:
- sleep(),是Thread类中的方法,指定线程休眠一段时间
- yield(),是Thread类中的方法,暂时中止当前正在执行的线程对象的运行。若存下其他同优先级的线程,则随即调用下一个同优先级的线程;若不存在这个被中断的程序继续。
- wait(),Object类中声明的方法,使线程进入等待状态,直到被另一线程唤醒。
- notify(),Object类中声明的方法,把线程状态的变化通知并唤醒另一等待线程。
一种在任何时刻都能终止线程执行的简单机制:
- 增加一个布尔变量running到这个Thread类中,并初始化为false
- 覆盖start()方法,首先将running置为true,然后调用super.start(