在我的程序中,我在main()方法中创建了几个线程。 main方法的最后一行是调用System.out.println(),在所有的线程都死了之前我不想调用它。我已经尝试在每个线程上调用Thread.join(),但阻塞每个线程,以便它们顺序执行而不是并行执行。

有没有办法阻止main()线程,直到所有其他线程完成执行?以下是我的代码的相关部分:

public static void main(String[] args) {

//some other initialization code

//Make array of Thread objects

Thread[] racecars = new Thread[numberOfRaceCars];

//Fill array with RaceCar objects

for(int i=0; i

racecars[i] = new RaceCar(laps, args[i]);

}

//Call start() on each Thread

for(int i=0; i

racecars[i].start();

try {

racecars[i].join(); //This is where I tried to using join()

//It just blocks all other threads until the current

//thread finishes.

} catch(InterruptedException e) {

e.printStackTrace();

}

}

//This is the line I want to execute after all other Threads have finished

System.out.println("It's Over!");

}

谢谢你的帮助!

埃里克

java线程死亡_java – 如何暂停main()直到所有其他线程死亡?相关推荐

  1. java 获取线程某个_Java中如何唤醒“指定的“某个线程

    熟悉线程操作的小朋友应该知道,Java中线程的挂起和唤醒一般用synchronized + wait + notify完成. 比如: synchronized(o) { o.wait(); //wai ...

  2. java 线程崩溃_java语言中application异常退出和线程异常崩溃的捕获方法,并且在捕获的钩子方法中进行异常处理...

    1.application应用程序注入自定义钩子程序 java语言本身提供一个很好的Runtime类,可以使我们很好的获取运行时信息.其中有一个方法是 public void addShutdownH ...

  3. java socket 线程池_java socket编程的一个例子(线程池)

    服务器程序EchoServer.java: import java.io.*; import java.net.*; import java.util.concurrent.*; public cla ...

  4. java 线程起名字_java多线程学习三::::为什么要给线程起名字并且知道守护作用?...

    为什么要会线程起名字呢? 你如果拿到一连串的Thread-01,Thead-02我想你应该会疯掉,看以下代码 package rs.thread.day0504; /** * @auther rs * ...

  5. java juc作者_Java面试之JUC系列:Collection线程不安全的举例

    Collection线程不安全的举例 前言 1.当我们执行下面语句的时候,底层进行了什么操作 new ArrayList(); 底层创建了一个空的数组,伴随着初始值为10 当执行add方法后,如果超过 ...

  6. 粤嵌实习-linux下madplay播放器的下载和使用、线程的介绍和创建一个广告循环播放线程

    文章目录 粤嵌实习(电梯运行演示系统) 播放器: 线程: 简单介绍: 创建线程: 应用:创建一个广告循环播放的线程 粤嵌实习(电梯运行演示系统) 播放器: (1)通过命令sudo apt-get in ...

  7. java如何让程序暂停一会_Java如何暂停线程一段时间?

    在Java编程中,如何暂停线程一段时间? 以下示例显示如何通过创建sleepThread()方法来暂停线程一段时间. package com.yiibai; public class Suspendi ...

  8. java怎么让main方法不退出_JAVA线程池原理源码解析—为什么启动一个线程池,提交一个任务后,Main方法不会退出?...

    public static void main(String[] args) { ExecutorService service = Executors.newFixedThreadPool(10); ...

  9. java中我爱你_Java线程学习(转)

    编写具有多线程能力的程序经常会用到的方法有: run(),start(),wait(),notify(),notifyAll(),sleep(),yield(),join() 还有一个重要的关键字:s ...

最新文章

  1. JS与CSS阻止元素被选中及清除选中的方法总结
  2. 判断三个数最大的数 从结果出发思考问题
  3. 【PM模块】维护业务处理流程—内部维护(通知单)
  4. visual MySQL 教程_Visual Studio操作MySQL的详细步骤
  5. mysql 排序_MySql的几种排序方式
  6. win10树莓派改ip_Window 10通过网线和Wifi连接树莓派
  7. java flux api,SpringBoot学习系列-WebFlux REST API 全局异常处理
  8. 《图像处理知识》宝藏总纲
  9. 业界总结 | 如何改进双塔模型,才能更好的提升你的算法效果?
  10. 博文视点读书节第十日丨大咖书单最终章技术分享双倍放送!
  11. IT技术图书之《敏捷无敌》当小说看 你信吗?
  12. VUE的数据双向绑定
  13. C++ Liberary websit
  14. win10跳过计算机密码,Win10怎么取消开机密码?Win10如何跳过开机密码?
  15. 【预测模型】基于粒子群优化宽度学习实现预测matlab代码
  16. 给SAP初学者的建议!
  17. TCP/IP网络编程之基于TCP的服务端/客户端(一)
  18. DB2数据库开发工具:DBVisualizer
  19. java检测ping延迟_批量ping IP并检测IP延迟率和丢包率脚本
  20. 淘宝标题可以改吗 淘宝标题优化技巧方法有哪些

热门文章

  1. html input 传值 request接到值为null,解决jsp向servlet传值为null的问题
  2. python six库_six库 解决python2的项目如何能够完全迁移到python3
  3. 支持自定义的离线语音模块WT516P6Core 串口协议使用说明
  4. 直流电源端口雷击或瞬态浪涌防护设计方案图详解
  5. git源码服务器搭建,树莓派3-搭建GIT代码服务器
  6. java dom添加节点_java用dom更新xml的有关问题,如何在子节点上添加节点
  7. 可视化神器背后的奥秘
  8. python 温度 符号_【火马】Python学习小记01
  9. android中常用的下拉刷新加载更多_如何设计“加载流程”
  10. bread是可数还是不可数_​面包bread是可数名词还是不可数