1)要求:
完成一个java application应用程序,在应用程序主进程中新开一个线程,此线程进行死循环,每1秒被激活一次,激活时即在输出显示当前时间。
程序代码:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Timer implements Runnable {
public void run(){//run方法,里面包含需要执行的任务
while(true){
try {
Thread.sleep(1000); //使得线程休息时间1s
SimpleDateFormat t=new SimpleDateFormat("yyyy-MM-dd"+" "+"HH:mm:ss");
String Time=t.format(new Date());//将当前时间信息赋给变量Time
System.out.println("当前的时间为:"+Time);//输出当前时间信息
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
Timer T=new Timer();//创建线程
new Thread(T).start();//开启线程
}
}
输出结果:
2)要求:
完成一个java application应用程序,此应用程序公共类有一个double型类属性(变量)x,初始值为0;在应用程序主进程中新开两个线程,这两个线程都进行死循环;第1个线程每隔300ms激活一次,令类属性x自加1.0并输出显示;第2个线程每隔400ms激活一次,令类属性x自加0.1并输出显示。
程序代码:
public class Thre{
static double x=0;
public static void main(String[] args){
Thread T1=new Thread(new Thre1());//创建线程
Thread T2=new Thread(new Thre2());//创建线程
new Thread(T1).start();//开启线程
new Thread(T2).start();//开启线程
}
public static class Thre1 extends Thread {
public void run(){//run方法,里面包含需要执行的任务
while(true){
try {
Thread.sleep(300); //使得线程休息时间300ms
x+=1.0;
System.out.println("+1= "+x);//输出当前数值
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static class Thre2 extends Thread{
public void run(){//run方法,里面包含需要执行的任务
while(true){
try {
Thread.sleep(400); //使得线程休息时间400ms
x+=0.1;
System.out.println("+0.1= "+x);//输出当前数值
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
运行结果: