02 :线程状态和终止
1:线程的6中状态 线程的状态在JavaThread类中有明确的定义,一共有6种: 由于CPU调度的原因,Runnable状态有两种情况:1:运行中,2:CPU可以随时运行。 如果一个线程已经运行结束了,你还调用 start()方法,会抛出异常。
2:如何终止一个正在运行的线程
不正确的方法: 1:JDK 不推荐使用 stop()方法终止线程,(stop :终止线程并且清除监控器锁的信息)JDK 不建议使用,因为会导致线程安全问题。 强行中断了线程,导致线程任务没有安全的推出,可能导致数据的不一致性。
2.1:推荐的方法:interrupt
调用线程的Interrupt方法后。线程会安全终止,并且抛出一个异常。(实际上只是给线程设置一个中断标志,线程仍会继续运行。直到安全结束。)
2.1:通过标志位实现终止