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

    运行结果

  • 相关阅读:
    关于JSON可能出现的错误,待更/todo
    mongoose的安装与使用(书签记录) 2017
    HTTP的学习记录3--HTTPS和HTTP
    HTTP的学习记录(二)头部
    HTTP(一)概述
    LeetCode 455. Assign Cookies
    LeetCode 453. Minimum Moves to Equal Array Elements
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 447. Number of Boomerangs
    LeetCode 416. Partition Equal Subset Sum
  • 原文地址:https://www.cnblogs.com/whohow/p/12078227.html
Copyright © 2011-2022 走看看