数字游戏

  1. 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数。 
  2.  * 要求每当第二个线程给出自己的猜测后,第一个线程都会提示“猜小了”、“猜大了”或“猜对了”。 
  3.  * 猜数之前,要求第二个线程要等待第一个线程设置好要猜测的数。 
  4.  * 第一个线程设置好猜测数之后,两个线程还要相互等待。 
  5.  * 其原则是:第二个线程给出自己的猜测后,等待第一个线程给出的提示;第一个线程给出提示后,等待给第二个线程给出猜测。 
  6.  * 如此进行,直到第二个线程给出正确的猜测后,两个线程进入死亡状态。 
    package 多线程;  
    import java.util.Random;  
    public class example2{      
            public static void main(String[] args) {    
                // TODO Auto-generated method stub     
                guessThread fth=new guessThread();  
                Thread first=new Thread(fth);//正确数字线程  
                first.run();  
                while(true)    
                {              
                   try {    
                        Thread.sleep(10);  
                        guessThread sth=new guessThread();  
                            Thread second=new Thread(sth);  
                       // Thread second=new Thread(new guessThread());  
                        second.interrupt();  //唤醒这个进程  
                        second.run();  
                        Thread.sleep(10);  
                        first.interrupt();          
                    System.out.println("随机生成的数为"+fth.getNum()+",猜的数字为:"+sth.getNum());    
                    if(sth.getNum()>fth.getNum())      
                        System.out.println("猜大了");    
                       
                    else if(sth.getNum()<fth.getNum())  
                            System.out.println("猜小了");   
                      
                    else {System.out.println("猜对了");   break;}  
                    }    
                catch (InterruptedException e) {    
                    // TODO Auto-generated catch block    
                    e.printStackTrace();    
                }     
                }  
            }  
    }  
                  
    package 多线程;  
    import java.util.Random;  
    class guessThread implements Runnable{  
               int num;     
            public synchronized void run() {    
                // TODO Auto-generated method stub    
                Random r = new Random();    
                 num= r.nextInt(100);    
            }   
            public int getNum() {    
                return num;    
            }    
            public void setNum(int num) {    
                this.num = num;    
            }   
    }  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值