1. 程式人生 > >《Java》Java“定時器和多執行緒”實際應用——定時器配合多執行緒

《Java》Java“定時器和多執行緒”實際應用——定時器配合多執行緒

一、任務目標

    完成一個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 } }

執行結果:
在這裡插入圖片描述