第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();
}
}
运行结果


浙公网安备 33010602011771号