您的位置:首页 > 其它

两个线程模拟猜数字

2017-12-13 13:21 351 查看
1.一个线程随机生成数字,以及判断是否才对

2.另一个线程接受用户的收入数字

package www.whf.test2;

import java.util.Scanner;

public class Test2 {
static Thread t1 = null;

public static void main(String[] args) {

t1 = new Thread(() -> {
int i = 1;
int num0;
while (true) {
System.out.println("第" + (i++) + "轮");
num0 = ((int) ((Math.random() * 10)));
System.out.println("请猜");

while (true) {
synchronized (t1) {
try {
t1.wait();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}

// System.out.println("数字"+num0);
if (num0 == num.getnum()) {
System.out.println("猜中了");
break;
} else if (num0 > num.getnum()) {
System.out.println("猜小了");
} else {
System.out.println("猜大了");

}

}
}

});
t1.start();

new Thread(() -> {
Scanner sc = new Scanner(System.in);
while (true) {
num.setnum(sc.nextInt());
System.out.println("我猜是" + num.getnum());
synchronized (t1) {
t1.notifyAll();
}

}
}).start();
}

static class num {
static int num;
static boolean flag = true;

public static synchronized void setnum(int num) {
Test2.num.num = num;
}

public static synchronized int getnum() {
return num;
}

}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息