Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中运行一个线程,让我知道另一个线程何时死亡?_Java_Multithreading_Threadpool - Fatal编程技术网

如何在java中运行一个线程,让我知道另一个线程何时死亡?

如何在java中运行一个线程,让我知道另一个线程何时死亡?,java,multithreading,threadpool,Java,Multithreading,Threadpool,假设我在java中有一个线程a。此线程继续执行某个任务A。 我有另一个线程B,它必须在任务a完成后才执行任务B。如何在Java中实现这一点?您可以使用它基本上阻止一个线程,直到另一个线程终止: // In thread B threadA.join(); doStuff(); 请注意,如果您使用线程池(例如,通过executor服务),这将无法正常工作。如果需要这样做(我通常建议使用executor而不是“原始”线程),那么需要让executor任务通知任何侦听器它已经完成(例如,通过a) 如

假设我在java中有一个线程a。此线程继续执行某个任务A。 我有另一个线程B,它必须在任务a完成后才执行任务B。如何在Java中实现这一点?

您可以使用它基本上阻止一个线程,直到另一个线程终止:

// In thread B
threadA.join();
doStuff();
请注意,如果您使用线程池(例如,通过executor服务),这将无法正常工作。如果需要这样做(我通常建议使用executor而不是“原始”线程),那么需要让executor任务通知任何侦听器它已经完成(例如,通过a)

如果您使用,您也应该看看,这可以简化事情。

您可以使用基本上阻止一个线程,直到另一个线程终止:

// In thread B
threadA.join();
doStuff();
请注意,如果您使用线程池(例如,通过executor服务),这将无法正常工作。如果需要这样做(我通常建议使用executor而不是“原始”线程),那么需要让executor任务通知任何侦听器它已经完成(例如,通过a)


如果你使用,你也应该看看,它简化了事情。

你可以使用Thread Excutor来实现这一点。执行器将该值保留在线程池中。请参考此链接,它可能会对您有所帮助

另见


您可以使用Thread Excutor来取消此操作。执行器将该值保留在线程池中。请参考此链接,它可能会对您有所帮助

另见


在JavaSE7中,您可以使用。这里有一个例子。使用CountDownLatch带来的好处是,您可以使用一定数量的所需倒计时来初始化它,这样您就可以等待一组线程。另外,它不需要线程完成(如join()),线程可以在任何地方调用countDown()并继续执行。
此外,另一种方法是


在JavaSE7中,您可以使用。这里有一个例子。使用CountDownLatch带来的好处是,您可以使用一定数量的所需倒计时来初始化它,这样您就可以等待一组线程。另外,它不需要线程完成(如join()),线程可以在任何地方调用countDown()并继续执行。
此外,另一种方法是