java 多线程求和

Java中可以使用多线程来进行并发计算。下面是一个示例的Java代码,展示了如何通过多线程对数组元素进行求和操作:

import java.util.concurrent.*;
 
public class SumCalculator {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        int[] array = {1, 2, 3, 4, 5}; // 要求和的数组
        
        // 创建ExecutorService来管理线程池
        ExecutorService executor = Executors.newFixedThreadPool(array.length);
        
        // 定义FutureTask列表存放每个任务的结果
        List> tasks = new ArrayList<>();
        
        for (int i : array) {
            Callable task = () -> sum(i); // 将每个数字传递给sum()函数进行求和
            
            FutureTask futureTask = new FutureTask<>(task);
            tasks.add(futureTask);
            
            executor.submit(futureTask); // 提交任务到线程池
        }
        
        // 关闭线程池
        executor.shutdown();
        
        // 等待所有任务完成
        while (!executor.isTerminated()) {}
        
        // 获取每个任务的结果并相加得到最终结果
        int result = 0;
        for (FutureTask task : tasks) {
            result += task.get();
        }
        
        System.out.println("Sum of the elements in the array is: " + result);
    }
    
    private static Integer sum(int num) {
        return num * num; // 这里只是简单地返回输入值的平方作为示例
    }
}

上述代码会创建一个包含指定数量线程的线程池(在本例中与数组长度相同),然后将每个数组元素分配给不同的线程进行求和运算。最后,通过调用get()方法从每个任务中获取结果,并将其相加得到最终的求和结果。

你可能感兴趣的:(java,windows)