使用Thread类的join方法来实现多个线程的数据累加。\n\n首先,定义一个Counter类,其中包含一个sum变量用于保存累加结果:\n\njava\npublic class Counter {\n private int sum;\n\n public Counter() {\n this.sum = 0;\n }\n\n public int getSum() {\n return sum;\n }\n\n public synchronized void addToSum(int num) {\n sum += num;\n }\n}\n\n\n然后,创建两个不同的线程,每个线程负责跑数据,并将结果累加到Counter对象的sum变量中:\n\njava\npublic class Main {\n public static void main(String[] args) throws InterruptedException {\n Counter counter = new Counter();\n \n Thread thread1 = new Thread(() -> {\n // 线程1跑数据\n int result = runData();\n // 将结果累加到Counter对象的sum变量中\n counter.addToSum(result);\n });\n \n Thread thread2 = new Thread(() -> {\n // 线程2跑数据\n int result = runData();\n // 将结果累加到Counter对象的sum变量中\n counter.addToSum(result);\n });\n \n thread1.start();\n thread2.start();\n \n // 等待两个线程执行完毕\n thread1.join();\n thread2.join();\n \n // 输出累加结果\n System.out.println("累加结果:" + counter.getSum());\n }\n \n private static int runData() {\n // 这里是每个线程具体跑数据的逻辑\n // 返回一个需要累加的结果\n }\n}\n\n\n在main方法中,首先创建了一个Counter对象用于保存累加结果。然后创建了两个线程thread1thread2,每个线程都负责跑数据,并通过counter.addToSum(result)将结果累加到Counter对象的sum变量中。\n\n接着,调用thread1.start()thread2.start()启动线程。然后,使用thread1.join()thread2.join()等待两个线程执行完毕。\n\n最后,通过counter.getSum()获取累加的结果,并进行输出。

Java 多线程数据累加:使用 join 方法实现线程同步

原文地址: https://www.cveoy.top/t/topic/mxsU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录