为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只萌萌小番薯 2021-04-06 13:11:43
所以我有一个带有4个线程的程序,所有这些线程都在运行。即使在程序完成工作时,这些线程中的3个始终在运行。因此,我创建了一些变量以使其停止。我改变了while(true)对while(exit)和程序工作正常。在线程之后,我想运行其他语句,但前提是线程已停止。我尝试使用4个变量,exit,exit1,exit2,exit3并将它们设置为false。线程将完成并使这些变量为true。在主菜单之后Thread.start(),如果我要打印某些内容,则不会打印。Thread1.start();Thread2.start();Thread3.start();Thread4.start();有没有一种方法可以确保仅在线程停止后才运行某些语句?
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

本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");

}


查看完整回答
反对 回复 2021-04-14
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信