實現(xiàn)Runnable接口,實現(xiàn)多線程

Thread類的核心功能是進行線程的啟動,但是如果一個類直接繼承Thread類,就會造成單繼承的局限。Java中有提供老人另一種實現(xiàn)模式:Runnable接口。該接口中只有一個run方法。這一點和Thread類是一致的。

范例:使用Runnable定義線程主體類

class RunThread implements Runnable{
    private String title;

    public RunThread(String title) {
        this.title = title;
    }

    @Override
    public void run() {
        for(int i=0;i<10;i++){
            System.out.println("My thread title="+title+"i="+i);
        }
    }
}

但是,新的問題產(chǎn)生了。實現(xiàn)Runnable接口后,雖然實現(xiàn)了run方法,凡是沒有課start方法。此時,就需要我們關注Thread的構造方法。 publiv Thread(Runnable target),說明該構造函數(shù)可以使用Thread的構造方法進行實現(xiàn)線程啟動。

class RunThread implements Runnable{
    private String title;

    public RunThread(String title) {
        this.title = title;
    }

    @Override
    public void run() {
        for(int i=0;i<10;i++){
            System.out.println("My thread title="+title+"i="+i);
        }
    }
}

public class RunnableDemo {
    public static void main(String args[]){
        RunThread myThread1 = new RunThread("thread1");
        new Thread(myThread1).start();
        RunThread myThread2 = new RunThread("thread1");
        new Thread(myThread2).start();
        RunThread myThread3 = new RunThread("thread1");
        new Thread(myThread3).start();
    }
}

由于這樣的編碼方式顯得太繁瑣,而Runnable寫那么多純粹就實現(xiàn)了一個線程主體類的對象而已。因此,可以使用匿名內(nèi)部類的方法進行實現(xiàn)。

/**
 * Created by liyubo on 2017/9/23.
 * 使用匿名內(nèi)部類實現(xiàn)Runnable接口
 */
public class RunThreadDemo2 {
    public static void main(String args[]){
        new Thread(new Runnable() {
            private String title;

            @Override
            public void run() {
                for(int i=0;i<10;i++)
                System.out.println("i="+i);
            }
        }).start();
    }
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 本文主要講了java中多線程的使用方法、線程同步、線程數(shù)據(jù)傳遞、線程狀態(tài)及相應的一些線程函數(shù)用法、概述等。 首先講...
    李欣陽閱讀 2,602評論 1 15
  • Java多線程學習 [-] 一擴展javalangThread類 二實現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 3,115評論 1 18
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,854評論 18 399
  • 孔雀帶給悅悅好多樂趣。她終于巧取豪奪把粑粑麻麻的麗江孔雀拿到手了。? 所以Peacock Studio就這樣掛牌成...
    悅安家校閱讀 207評論 0 0
  • 1.沉沒成本知易行難,從小就要節(jié)約,對于剩菜剩飯很多時候會在己經(jīng)吃飽的情況下把它吃掉,剩菜剩飯己經(jīng)是沉沒成本,吃飽...
    水中望我閱讀 487評論 0 1

友情鏈接更多精彩內(nèi)容