Java16周作业

Wesley13
• 阅读 678

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

/*使用Runnable接口使用类创建线程对象,重写run()方法**/

代码

public class timetext {

    
    public static void main(String[] args) {
        Thread thread =new Thread(new time());
        thread.start();

    }

}

import java.util.Date;


public class time implements Runnable {

    public void run() {
        Date date =null;
        while(true){
            date=new Date();
            System.out.println(date);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
}

}

  运行结果

Java16周作业

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

代码

public class Test {


    public static void main(String[] args) {
        game ga=new game();
        ga.rand.start();
        ga.input.start();
        
    }

}

import java.util.*;
public class game implements Runnable {
     Thread rand,input; 
     int inputnum,random,flag;
     boolean a=false,b=false;
      public game(){
          rand=new Thread(this);
          input=new Thread(this);
        }
    
    public void run() {
         while(true){
                compare(); 
                if(flag==3)
                    return;
            }
    }
    public synchronized void compare(){
        if(Thread.currentThread()==rand&&b==false){
            random=(int)(Math.random()*100)+1; 
            System.out.println("猜数游戏开始!");
            a=true;
            b=true;   
        }
        if(Thread.currentThread()==rand){
            if(a==true){
                try {
                    wait();
                } catch (InterruptedException e) {
                    
                    e.printStackTrace();
                }
            }
             if(inputnum<random){  
                    System.out.println("猜小了!请重猜!");
                    flag=1;
                }
             else if(inputnum>random){
                    System.out.println("猜大了!请重猜!");
                    flag=2;
                }
             else if(inputnum==random){
                    System.out.println("恭喜您猜对了!");
                    flag=3;
                }
             a=true;
                notifyAll(); 
            
        }
        if(Thread.currentThread()==input){
            while(a==false){
                try {
                    wait();
                } catch (InterruptedException e) {
                    
                    e.printStackTrace();
                }
            }
             if(flag<3){
                 System.out.println("请输入您猜的数!");
                 Scanner r=new Scanner(System.in);
                 inputnum=r.nextInt();  
             }
             a=false;
        }
        notifyAll(); 
    }

}

  运行结果

Java16周作业

点赞
收藏
评论区
推荐文章
wanQQ wanQQ
2年前
Java学习 Day01 多线程
Java学习Day01多线程Java多线程实现方式有2种1.继承Thread类,重写run方法案例测试类Thread01Javapackagetop.wanqq.thread;/@authorwanqq/publicclassThread01extendsThread@Overridepubli
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java 多线程同步锁的使用 三个售票窗口同时出售20张票
packageThread;/三个售票窗口同时出售20张票程序分析:1.票数要使用同一个静态值2.为保证不会出现卖出同一个票数,要java多线程同步锁。设计思路:1.创建一个站台类Station,继承Thread,重写run方法,在run方法里面执行售票操作
浪人 浪人
3年前
一篇文章弄懂Java多线程基础和Java内存模型
文章目录一、多线程的生命周期及五种基本状态二、Java多线程的创建及启动1.继承Thread类,重写该类的run()方法2.通过实现Runnable接口创建线程类3.通过Callable和Future接口创建线程三、Java内存模型概念四、内存间的交互操作五、volatile和synchronized的
Wesley13 Wesley13
3年前
Java高并发编程四
_做个笔记,java线程常用的方法,耐心看完._编号方法说明1publicvoidstart()使该线程开始执行;Java虚拟机调用该线程的run方法。2publicvoidrun()如果该线程是使用独立的Runnable运行对象构造的,则调用该Runnable对象的run方法;否则,该方
Wesley13 Wesley13
3年前
Java面试系列
实现多线程的方式继承Thread类,重写run方法,调用start方法启动线程实现Runnable接口,重写run方法,调用start方法启动线程实现Callable接口,重写call方法,并用FutureTask包装,在newThread中传入FutureTask,然后调用start方
Wesley13 Wesley13
3年前
Java创建多线程的几种方式
Java创建多线程的几种方式\TOC\1、继承Thread类,重写run()方法//方式1packagecn.itcats.thread.Test1;publicclassDemo1extendsThread{
Wesley13 Wesley13
3年前
Java多线程学习笔记
Java中创建多线程的三种方法1、继承Thread类创建线程2、实现Runnable接口创建线程3、使用Callable和Future创建线程\
Wesley13 Wesley13
3年前
Java多线程 简记
1、实现多线程方法继承Thread类或者实现Runnable接口2、Thread 和Runnable区别实现Runnable接口比继承Thread类所具有的优势:1):适合多个相同的程序代码的线程去处理同一个资源2):可以避免java中的单继承的限制3):增加程序的健壮性,代码可以被多个
Wesley13 Wesley13
3年前
Java创建多线程的几种方式
Java创建多线程的几种方式\TOC\1、继承Thread类,重写run()方法//方式1packagecn.itcats.thread.Test1;publicclassDemo1extendsThread{