苏州要服务网站建设,WordPress编辑器高亮,网站备案幕布要求,wordpress 泛解析21.编写一个Java程序#xff0c;使用多线程实现两个数的同时累加。 在Java中#xff0c;我们可以使用多线程来实现两个数的同时累加。下面是一个简单的示例#xff0c;其中创建了两个线程#xff0c;每个线程负责累加不同的数字。
请注意#xff0c;此示例假设我们要同时…21.编写一个Java程序使用多线程实现两个数的同时累加。 在Java中我们可以使用多线程来实现两个数的同时累加。下面是一个简单的示例其中创建了两个线程每个线程负责累加不同的数字。
请注意此示例假设我们要同时累加两个独立的数字序列而不是同一个数字序列。如果需要同时累加同一个数字序列那么需要更多的同步机制来避免数据竞争和不一致。 java复制代码
public class SimultaneousAddition { private static final int NUM_THREADS 2; private static final int MAX_VALUE 1000000; // 假设我们要累加的数字范围 private static volatile long sum1 0; private static volatile long sum2 0; public static void main(String[] args) { Thread thread1 new Thread(() - { for (int i 0; i MAX_VALUE; i) { sum1 i; } }); Thread thread2 new Thread(() - { for (int i MAX_VALUE; i 0; i--) { sum2 i; } }); thread1.start(); thread2.start(); try { thread1.join(); thread2.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Sum 1: sum1); System.out.println(Sum 2: sum2); } }
在这个程序中我们创建了两个线程thread1和thread2。thread1从0开始累加直到MAX_VALUE而thread2则从MAX_VALUE开始递减直到0。我们使用了volatile关键字来确保sum1和sum2的可见性这样当一个线程修改这些变量的值时其他线程可以立即看到这些变化。
我们使用join()方法等待两个线程都完成执行。然后我们打印出两个线程各自计算出的和。
请注意这个程序并没有处理可能出现的并发问题因为sum1和sum2的累加操作并不是原子的。在实际情况中如果需要对共享数据进行复杂的并发操作你可能需要使用更复杂的同步机制如synchronized块、ReentrantLock或AtomicLong等。然而在这个特定的例子中由于每个线程都在操作自己的独立变量所以我们不需要额外的同步。