【发布时间】:2012-08-18 04:07:12
【问题描述】:
在我的主程序中,我正在运行 1 个用户线程,它的所有子线程都是守护线程。因此,当用户线程完成其工作时,所有守护线程也会终止。我正在守护线程中执行一些代码块,这些代码块必须在线程终止之前完成。
如果用户线程完成工作,是否可以在守护线程中等待特定的块执行?
【问题讨论】:
-
你试过
Thread.join()吗? -
如果您必须等待线程中的某些内容完成,为什么它是守护线程。我会把它变成一个正常的线程。不需要让后台线程成为守护进程。
-
@PeterLawrey 我在守护线程中运行一些无限循环。因此,如果我尝试以正常方式停止应用程序,则如果我使用用户线程则无法停止。我仍然需要在守护进程终止之前完成启动的部分代码。
-
你可以用一个标志告诉线程优雅地关闭,因为只有他们知道他们什么时候完成了他们需要做的事情。
标签: java multithreading