线程猜数字
来源:互联网 发布:公司淘宝培训协议书 编辑:程序博客网 时间:2024/06/16 21:40
用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数。要求每当第二个线程给出自己的猜测后,第一个线程都会提示“猜小了”、“猜大了”或“猜对了”。猜数之前,要求第二个线程要等待第一个线程设置好要猜测的数。第一个线程设置好猜测数之后,两个线程还要相互等待,其原则是:第二个线程给出自己的猜测后,等待第一个线程给出的提示;第一个线程给出提示后,等待给第二个线程给出猜测,如此进行,直到第二个线程给出正确的猜测后,两个线程进入死亡状态。
package test; import java.util.Random; public class test { public static void main(String[] args) { Num proNum=new Num(); Thread tPro =new Thread(proNum); //设置正确数字线程 tPro.run(); try { Thread.sleep(10); Num gueNum=new Num(); Thread tGue=new Thread(gueNum); //猜数字线程 while(true) { tGue.interrupt(); tGue.run(); //每个循环调用一次猜数字线程生成一个随机数 Thread.sleep(10); tPro.interrupt(); //唤醒第一个线程 if(gueNum.getNum()==proNum.getNum()) { System.out.println("猜测数字为:"+gueNum.getNum()+"猜对了"); break; } else if(gueNum.getNum()<proNum.getNum()) System.out.println("猜测数字为:"+gueNum.getNum()+"猜小了"); else System.out.println("猜测数字为:"+gueNum.getNum()+"猜大了"); } } catch (InterruptedException e) { e.printStackTrace(); } } } class Num implements Runnable{ int num; @Override public synchronized void run() { Random n=new Random(); num=n.nextInt(100); } public int getNum() { return num; } public void setNum(int num) { this.num = num; } }
阅读全文
0 0
- 线程--猜数字
- 猜数字(线程)
- 线程猜数字
- 线程--猜数字
- 三线程猜数字
- 线程 猜数字
- 线程--猜数字
- 两个线程模拟猜数字
- 用两个线程玩猜数字游戏.
- 用两个线程玩猜数字游戏
- 数字时钟 (线程~)
- 作业2用两个线程玩猜数字游戏
- 两线程交替打印数字
- 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数。
- 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数。
- 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数
- N个线程轮流打印数字问题
- Java线程问题实现打印数字字母
- 数据存储:轻量级存储类SharedPreferences的一个应用实例
- X264编码(2)
- 为什么要写博客?
- spring 学习
- Python中六大排序算法与代码实现
- 线程猜数字
- iOS自己实现二维码生成与扫描
- 周四见|《从50分到0.59秒,SQL优化让不可能变成可能》by松华
- 多线程
- KVM介绍
- network:vpn by yourself
- JavaScript基础(4.for循环与if)
- Collections.unmodifiableMap()分析
- PAT 1014. 福尔摩斯的约会