Java守护线程的理解笔记(3)

上面的程序中,守护线程由下载子线程创建,守护下载子线程。当守护线程发现下载线程超时之后,就会终止下载线程,然后通知主线程再重新创建一个下载线程继续之前的下载,然后这个守护线程会随着要终止的下载线程一起结束。一对新的下载线程和守护线程继续当前的下载任务。

但是上面的程序在下载完成之后并不会退出,因为主线程还在wait()中。所有的下载子线程和守护线程均退出。

从这里可以得出一个结论:

1、object.wait()和object.notify必须在synchronized(object){}代码块中执行,否则会报java.lang.IllegalMonitorStateException异常


2、一个线程wait()之后并不会结束。并且守护它的守护线程也不会结束。

3、主线程也可以wait()

4、主线程出现crash崩溃了之后,主线程开启的子线程会继续执行。由主线程产生的守护线程会守护主线程产生的子线程。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1cec03be9ed6aa754429e1e3dda850f7.html