JAVA编程问题,本人初学者,30分

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:55:05
编两个线程,一个是由电脑随机产生数另一个是把这些数加起来。电脑是双核的,这两个线程可同时进行。我想要完整的程序,谢谢

就算电脑是16核的, 这两个线程也不可能一直同时进行
电脑里的线程多了去了,
不过
编两个线程,一个是由电脑随机产生数另一个是把这些数加起来。
可以使用同步方法写出来

public class Test {
private static Object obj = new Object();//线程的对象监视器 锁头..
private static double rand = 0;//保存当前随机数
private static double sum = 0;//保存总和
private static boolean isNew = false;//当前的随机数是不是刚刚产生的
public static void main(String[] args) {
Test test = new Test();
new Thread(test.new Rand()).start();//启动线程
new Thread(test.new Add()).start();
}

class Rand implements Runnable{
public void run() {
synchronized(obj) {//同步块, obj是此线程的对象监视器
while(true) {
try {
if(isNew) {//如果刚刚产生的随机数没有被另一个线程加起来,则此线程等待.
obj.wait();
}
Thread.sleep(500);//休眠0.5秒,防止刷屏
rand = Math.random();
System.out.println("随机数: " + rand);
isNew = true;
} catch (Exception e) {
e.printStackTr