小编lyh*_* Te的帖子

在循环中创建线程并等待所有线程在 java 中完成

我是 Java 新手。我最近在学校学习多线程。我尝试创建一个小程序,该程序可以将任务分成更小的部分,并使用循环在单独的线程中运行每个部分。问题是在循环之后我需要对结果求和并将其打印出来,但是循环之后的打印在线程完成之前运行。

我所有的同学都sleep在打印结果之前添加,但是当线程花费太长时间时这不起作用。

有没有办法在运行其他代码之前等待循环中的所有线程先完成?

import java.util.Scanner;
import java.util.concurrent.ExecutorService;

import java.util.concurrent.TimeUnit;

public class threatGenerator {
    static int count = 0;
    public static void main(String[] args) throws InterruptedException {
        Scanner sc = new Scanner(System.in);
        System.out.print("Input start: ");
        int start = Integer.parseInt(sc.nextLine());
        System.out.print("Input end: ");
        int end = Integer.parseInt(sc.nextLine());
        
        int threadNumber = (int)Math.ceil((end - start)/100.0) ;

        System.out.println("Running "+threadNumber+" threads.");
       
        for(int i = 0 ;i < threadNumber;i++){
            int temp = start+ 99;
            
            if(temp>end) temp = end;

            String name = String.valueOf(i);
            ThreadDemo …
Run Code Online (Sandbox Code Playgroud)

java multithreading loops notify wait

0
推荐指数
1
解决办法
75
查看次数

标签 统计

java ×1

loops ×1

multithreading ×1

notify ×1

wait ×1