• 第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();  
    	}
    
    }

    运行结果

  • 相关阅读:
    Java程序员必知的8大排序
    java提高篇-----理解java的三大特性之封装
    树莓派学习笔记——GPIO功能学习
    SQL 服务没有及时响应启动或控制请求”的解决方法
    http://blog.csdn.net/u011001723/article/details/45621027
    error
    Spring @Conditional注解的使用
    Python [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解决方法
    python
    local class incompatible: stream classdesc serialVersionUID = -2897844985684768944, local class serialVersionUID = 7350468743759137184
  • 原文地址:https://www.cnblogs.com/whohow/p/12078227.html
Copyright © 2020-2023  润新知