该部分内容讲解线程如何启动,又该如何停止。
线程的启动
一个线程对象在初始化完成之后,调用start()方法去启动该线程。此时将会有两个线程在运行,一个是调用start()方法的当前线程(主线程),另一个则是创建的那个线程。通过下面jdk源码的注释可以看到。
我们还可以看出来,主线程调用start()方法的同时去通知java虚拟机,之后虚拟机去创建线程调用run()方法。
如何优雅的停止线程
线程的创建是很简单的,但停止一个线程是否也是如此呢?
停止线程可以用stop()方法,但该方法被标注已过期。官方也不建议使用该方法。这又是为什么呢?因为stop()方法会立即杀死该线程,这样的话线程后续应有的操作将会终止,最终导致数据不一致问题。
正确的停止线程的方法通常是使用interrupt()这个方法,该方法的使用将在下次课程中和大家分享。