第16周作业
# 题目
1:编写一个应用程序,利用Java多线程机制,实现时间的同步输出显示。
2:编写一个应用程序,利用Java多线程机制,实现猜数字游戏(随机数范围0~100之间的整数)。
# 源代码
## 题一
import java.util.Date; /** * 编写一个应用程序,利用Java多线程机制,实现时间的同步输出显示。 * @author 喵 * @date 2019年12月19日上午9:38:29 */ public class showCurrenttime extends Thread{ @Override public void run() { while(true) { Date date = new Date(); System.out.println(date); try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
## 测试类
public class Test { public static void main(String[] args) { showCurrenttime sTime = new showCurrenttime(); sTime.start(); } }
## 测试结果

## 题二
import java.util.Scanner; /** * 编写一个应用程序,利用Java多线程机制,实现猜数字游戏(随机数范围0~100之间的整数) * @author 喵 * @date 2019年12月21日上午11:07:23 */ public class guessNumber implements Runnable { int randomNum; int inputNum; Thread getNumThread; Thread guessNumThread; guessNumber() { getNumThread = new Thread(this); } @Override public void run() { for (int count = 1; count < 6; count++) { if (Thread.currentThread() == getNumThread) { randomNum = ((int) (Math.random() * 100) + 1); try { System.out.println("共有5次机会猜数字!"); System.out.println("请输入1~100的随机数,猜猜是否正确:"); guessNumThread = new Thread(this); guessNumThread.start(); Thread.sleep(1000 * 60 * 10); } catch (InterruptedException e) { System.out.println("正确数字为:" + randomNum); System.out.println("机会次数使用完了,再接再厉!"); return; } } if (Thread.currentThread() == guessNumThread) { Scanner input = new Scanner(System.in); System.out.print("这是第" + count + "次猜:"); inputNum = input.nextInt(); if (inputNum < randomNum) { System.out.println("结果:小了小了!"); } else if (inputNum > randomNum) { System.out.println("结果:大了大了!"); } else { System.out.println("结果:回答正确!"); System.out.println("游戏结束!"); break; } if (count == 5) { getNumThread.interrupt(); } } } } }
## 测试类
public class Test { public static void main(String[] args) { guessNumber gN = new guessNumber(); gN.getNumThread.start(); } }
## 测试结果


浙公网安备 33010602011771号