Java多線程實現2,實現Runnable接口


Java 程序只允許單一繼承,即一個子類只能有一個父類。所以在Java中如果一個類繼承了某一個類,同時又想采用多線程技術的時,就不能用繼承Thread類的方式產生線程了,因為Java不允許多繼承。這時就要用Runnable接口來創建線程了。采用實現Runnable接口方式實現多線程的大致步驟如下:

  1. 定義一個新的類實現Runnable接口,假設此類名為TestThread。
  2. 在TestThread類中實現run()方法,此方法即為新線程的運行程序代碼。
  3. 創建TestThread類的對象t1,再以t1為參數創建Thread類的對象並調用此對象的start()方法。

下面是采用此方式實現多線程的一個示例:

public class ThreadDemo9_2
{
    public static void main(String args[])
    {
        TestThread t = new TestThread();
        new Thread(t).start();
        //循環輸出
        for(int i = 0; i < 1000; i++)
        {
            System.out.println("main線程在運行");
        }
    }
}

class TestThread implements Runnable
{
    public void run()
    {
        for(int i = 0; i < 1000; i++)
        {
            System.out.println("TestThread在運行");
        }
    }
}

 

為什么實現了Runnable接口還需要調用Thread類中的start()方法才能啟動多線程呢?讀者通過查找JDK文檔就可以發現,在Runnable接口中只有一個run()方法,並沒有start()方法。所以一個類實現了Runnable接口也必須用Thread類中的start()方法來啟動多線程。這點可以通過查找JDK文檔中的Thread類發現,在Thread類之中,有這樣一個構造方法:public Thread(Runnable target)
由此構造方法可以發現,可以將一個Runnable接口的實例化對象作為參數去實例化Thread類對象。在實際的開發中,應盡可能去使用Runnable接口去實現多線程機制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM