线程--猜数字
来源:互联网 发布:淘宝客佣金计算规则 编辑:程序博客网 时间:2024/06/11 09:45
题目:用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数。要求每当第二个线程给出自己的猜测后,第一个线程都会提示“猜小了”、“猜大了”或“猜对了”。猜数之前,要求第二个线程要等待第一个线程设置好要猜测的数。第一个线程设置好猜测数之后,两个线程还要相互等待,其原则是:第二个线程给出自己的猜测后,等待第一个线程给出的提示;第一个线程给出提示后,等待给第二个线程给出猜测,如此进行,直到第二个线程给出正确的猜测后,两个线程进入死亡状态。
(1)代码实现
import java.util.Random;public class GuessNumber {public static void main(String[] args) {number num=new number("线程一");num.start();guess gue=new guess("线程二");gue.start();}}//给出整数的线程class number extends Thread{String name1;private static int n;number(String name){name1=name;}public void run() {//获取1~100的随机数Random random=new Random();n=random.nextInt(100);System.out.println(name1+"给出的数字为:"+n);}//猜数字(静态方法,可通过类名调用)public static String guessnum(int m) {if(m<n) {return "猜小了";}else if(m>n){return "猜大了";}else return "猜对了";}}//猜数线程class guess extends Thread{String name2;//最大值和最小值private int min=0,max=100,nownum;//比较结果String Result;guess(String name){name2=name;}//获取比较结果public String getGuess() {return Result;}public void run() {while(true) {try{Thread.sleep(2000);}catch(InterruptedException e){e.printStackTrace();}Random ran=new Random();//当前猜的数字(最大值和最小值之间的数)nownum=min+ran.nextInt(max-min);//调用给出整数的线程 的猜数字方法guessnum,Result=number.guessnum(nownum);if(Result.equals("猜小了")) {min=nownum;System.out.println("线程二猜的数字是:"+nownum+"---猜小了");}else if(Result.equals("猜大了")) {max=nownum;System.out.println("线程二猜的数字是:"+nownum+"---猜大了");}else {System.out.println("线程二猜的数字是:"+nownum+"---猜对了,结果是"+nownum);System.exit(0);}}}}(2)运行结果
线程一给出的数字为:79
线程二猜的数字是:42---猜小了
线程二猜的数字是:50---猜小了
线程二猜的数字是:93---猜大了
线程二猜的数字是:54---猜小了
线程二猜的数字是:81---猜大了
线程二猜的数字是:80---猜大了
线程二猜的数字是:60---猜小了
线程二猜的数字是:65---猜小了
线程二猜的数字是:79---猜对了,结果是79
阅读全文
0 0
- 线程--猜数字
- 猜数字(线程)
- 线程猜数字
- 线程--猜数字
- 三线程猜数字
- 线程 猜数字
- 线程--猜数字
- 两个线程模拟猜数字
- 用两个线程玩猜数字游戏.
- 用两个线程玩猜数字游戏
- 数字时钟 (线程~)
- 作业2用两个线程玩猜数字游戏
- 两线程交替打印数字
- 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数。
- 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数。
- 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数
- N个线程轮流打印数字问题
- Java线程问题实现打印数字字母
- workbench开发vxWorks6.9之编译静态库与静态库的引用
- Prime Ring Problem
- 语言处理器
- 次大和次小
- 【集训队互测2013】城市规划
- 线程--猜数字
- pandas.read_csv参数详解
- Group Anagrams java代码实现
- HDU
- 最小二乘法
- 关于Android测试中ADB reset失败的问题
- 从傅里叶变换到加窗傅里叶变换
- oralce处理null值的方法
- linux操作系统常用命令