zoukankan      html  css  js  c++  java
  • Get Total Sum Using Multithread Programming

    Write a program that finds the sum value in an array of ints using 4 threads. You may assume in your threaded code that the array has at least 4 elements.

    ~~~
    public class Main {
        public static void main(String[] args) throws InterruptedException {
            int numOfThread = 4, dataLen = 4;
            Calculator[] calculators = new Calculator[numOfThread];
    
            Random random = new Random();
            int[] data = new int[dataLen];
            System.out.print("Random generate data:");
            for (int i = 0; i < dataLen; i++) {
                data[i] = random.nextInt(10);
                System.out.print(data[i] + " ");
            }
            for (int i = 0; i < numOfThread; i++) {
                calculators[i] = new Calculator(data, i * dataLen / numOfThread, (i + 1) * dataLen / numOfThread);
                calculators[i].start();
            }
            int sum = 0;
            for (int i = 0; i < numOfThread; i++) {
                calculators[i].join();
                sum += calculators[i].getAns();
            }
            System.out.println();
            System.out.println("Total Sum:" + sum);
    
        }
    }
    class Calculator extends Thread {
        private int[] data;
        private int start, end, ans = 0;
    
        public Calculator(int[] data, int start, int end) {
            this.data = data;
            this.start = start;
            this.end = end;
        }
    
        @Override
        public void run() {
            for (int i = start; i < end; i++) {
                ans += data[i];
            }
        }
    
        public int getAns() {
            return ans;
        }
    }
    
  • 相关阅读:
    RPC中阻塞队列的作用
    记用tensorflow-ranking时的bugs
    JDK作泛型比较时为什么把逻辑代码写两遍
    Java 不能声明泛型数组
    QuickSort Hoare vs Lomuto
    Java 对数组扩容
    Java交换两对象的问题
    毕业 失业
    dependencyManagement介绍
    web笔记
  • 原文地址:https://www.cnblogs.com/jun-ma/p/6291620.html
Copyright © 2011-2022 走看看