zoukankan      html  css  js  c++  java
  • 第16周作业

    题目1:

    编写一个应用程序,利用Java多线程机制,实现时间的同步输出显示。

    代码:

    package bean;
    
    import java.util.Date;
    
    public class TimeObject implements Runnable{
    
    	@Override
    	public void run(){
    		Date date =null;
    		while(true){
    			date=new Date();
    			System.out.println(date);
    			try {
    				Thread.sleep(1000);
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
    		}
    		
    	}
    
    }
    

      

    package demo;
    
    import bean.TimeObject;
    
    public class test {
    	public static void main(String[] args) {
    		Thread t=new Thread(new TimeObject());
    		t.start();
    		
    
    	}
    
    }
    

      

    运行结果

    题目2:

    编写一个应用程序,利用Java多线程机制,实现猜数字游戏(随机数范围0~100之间的整数)。

    代码:

    package demo;
    
    import java.util.Scanner;
    
    class Threadmethod implements Runnable{
        Thread Guess,SetNum;  
        int num,RandomNum,flag;
        boolean a=false,b=false;
        public Threadmethod(){
        	Guess=new Thread(this);
        	SetNum=new Thread(this);
        }
        
        public void run(){
            while(true){
                compare();  
                if(flag==3)
                    return;
            }
        }
        
        public synchronized void compare(){
            if(Thread.currentThread()==Guess&&b==false){
            	RandomNum=(int)(Math.random()*100)+1;  
                System.out.println("随机数生成,游戏开始");
                a=true;
                b=true;    
            }
            if(Thread.currentThread()==Guess){
                if(a==true){
                    try {
                        wait(); 
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                if(num<RandomNum){   
                    System.out.println("抱歉,您猜小了!");
                    flag=1;
                }
                else if(num>RandomNum){
                    System.out.println("抱歉,您猜大了!");
                    flag=2;
                }
                else if(num==RandomNum){
                    System.out.println("恭喜,您猜对了!");
                    flag=3;
                }
                a=true;
                notifyAll();  
            }
            if(Thread.currentThread()==SetNum){
                  while(a==false){
                	  try {
    					wait();
    				} catch (InterruptedException e) {
    					e.printStackTrace();
    				}
                  }  
                  if(flag<3){
                      System.out.println("请输入您猜测的数");
                      Scanner reader=new Scanner(System.in);
                      num=reader.nextInt();   
                  }
                  a=false;
            }
            notifyAll();  
        }
    }
    
    
    public class ts {
    
    	public static void main(String[] args) {
    		 Threadmethod tm=new Threadmethod();  
    		 tm.Guess.start();  
    		 tm.SetNum.start();  
    	}
    
    }

    运行结果

  • 相关阅读:
    “结束进程”和“结束进程树”有啥区别啊?
    为什么second是秒也是第二?
    java中System类
    记忆是如何形成的、又是如何存储在我们的大脑里的?
    真正支配整个世界的十种算法
    编写一个JAVA小程序取得IP地址
    windows下bat批处理执行sql语句__Mysql
    Windows批处理命令用法
    mysql 查看某个数据库中所有表的数据量
    truncate table时存在外键约束的解决办法
  • 原文地址:https://www.cnblogs.com/whohow/p/12078227.html
Copyright © 2011-2022 走看看