猿问

线程停止工作后,为什么不能在main()中运行语句?

所以我有一个带有4个线程的程序,所有这些线程都在运行。即使在程序完成工作时,这些线程中的3个始终在运行。因此,我创建了一些变量以使其停止。


我改变了while(true)对while(exit)和程序工作正常。


在线程之后,我想运行其他语句,但前提是线程已停止。


我尝试使用4个变量,exit,exit1,exit2,exit3并将它们设置为false。线程将完成并使这些变量为true。


在主菜单之后Thread.start(),如果我要打印某些内容,则不会打印。


Thread1.start();

Thread2.start();

Thread3.start();

Thread4.start();



有没有一种方法可以确保仅在线程停止后才运行某些语句?


一只萌萌小番薯
浏览 126回答 1
1回答

三国纷争

本Thread类有会替你的方法加入将阻塞,直到线程已经完成执行。Baeldung教程如何使用Thread#join因此,您的代码应如下所示:thread1.start();thread2.start();thread3.start();thread4.start();thread1.join();thread2.join();thread3.join();thread4.join();if(exit && exit2 && exit3 && exit4) {    System.out.println("Program Ended");}
随时随地看视频慕课网APP

相关分类

Java
我要回答