一、线程的状态有“创建、就绪、运行、阻塞、结束”几种;
二、线程的启动有两种方式:
1.子类直接继承(extends)Thread父类,然后直接实例化该子类,使用“.start()”启动线程;
2.子类使用Runnable接口(Implements),然后实例化该子类,创建一个Thread线程,使用Thread线程调用该子类的方法后启动,如:
推荐使用接口的形式,而非继承的形式来创建线程。
三、线程的休眠(sleep):
1.线程的休眠会抛出interrupted异常,因此需要try catch。但切记不可对异常进行throw处理,因为子类是重写的父类run()方法,子类是不可以对父类的方法异常进行抛出处理的。
2.线程的打断:
可以使用interrupt将某个线程进行打断。.stop()方法已被弃用,原因如下:
1.Stop()方法类似LINUX系统下的kill,是将某线程直接停止,无论该线程是否正在读取或在进行其他操作。
2.当然某些特殊情况下,还是可能会使用到stop()的;
3.尽量使用interrupt进行打断,相比stop()的好处是,interrupt没那么“狠”,它的打断是会让线程本身先进入异常,而非直接“杀死”。代码如下:
运行结果: