一、任务目标
完成一个java application应用程序,此应用程序公共类有一个double型类属性(变量)x,初始值为0;在应用程序主进程中新开两个线程,这两个线程都进行死循环;第1个线程每隔300ms激活一次,令类属性x自加1.0并输出显示;第2个线程每隔400ms激活一次,令类属性x自加0.1并输出显示。
二、线程的实现——继承Thread类
在Java中主要提供两种方式实现线程,分别为继承 java.lang.Thread 类与实现 java.lang.Runnable接口。
Thread 类中实例化的对象代表线程,继承 Thread 类创建一个新线程的语法如下:
public class ThreadTest extends Thread{
}
完成线程真正功能的代码放在类的run()方法中,当一个类继承 Thread 类后,就可以在该类中覆盖 run() 方法,将实现该线程功能的代码写入 run() 方法中,然后同时调用 Thread 类中的 start() 方法执行线程,也就是调用 run() 方法。
三、代码实现
注:关于Timer类
的使用请点击 -> 参考文章
程序代码:
import java.lang.Thread; //导入Thread类
import java.util.Timer; //导入Timer类
import java.util.TimerTask; //导入TimerTask类
public class ThreadTest{ //创建ThreadTest类
/**
* @param args
*/
static double x = 0; //定义双精度变量x
public static class T1 extends Thread{ //指定T1继承Thread类
public void run(){ //Thread的run()方法
Timer timer1 = new Timer(); //创建Timer类对象timer
timer1.schedule(new TimerTask(){ //schedule方法延迟300ms
public void run(){ //TimerTask类的run()方法
x += 1.0;
System.out.println("当前x的值为:"+x);
}
},0,300);
}
}
public static class T2 extends Thread{
public void run(){
Timer timer2 = new Timer();
timer2.schedule(new TimerTask(){
public void run(){
x += 0.1;
System.out.println("当前x的值为:"+x);
}
},0,400);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new T1().start(); //启动线程T1
new T2().start(); //启动线程T2
}
}
运行结果: