Java之實現多執行緒的方式二:實現Runnable介面

Devilyang123發表於2018-05-22

在Java中實現多執行緒的另一種方式就是實現Runnable介面,重寫run()方法。

通過檢視原始碼可知,Thread類,其同樣是實現了Runnable介面,部分原始碼如下

接下來先來實現介面,重寫方法

package com.xiao.runnable;
/**
 * @Author 笑笑
 * @Date 22:02 2018/05/22
 */
public class MyThreadClass implements Runnable{

    @Override
    public void run() {
        for (int i = 1; i < 50; i++){
            System.out.println("MyThreadClass....run"+i);
        }
    }
}

這種方式我們要建立Thread物件,通過其構造器:Thread(Runnable target) 來分配新的Thread物件(其實就是傳遞Runnable介面的實現類物件)呼叫start()方法

package com.xiao.runnable;
/**
 * @Author 笑笑
 * @Date 22:03 2018/05/22
 */
public class RunnableDemo {

    public static void main(String[] args){

        //建立Runnable介面的實現類物件
        MyThreadClass myThreadClass = new MyThreadClass();
        //建立Thread物件
        Thread thread = new Thread(myThreadClass);
        //呼叫start()方法
        thread.start();
        for (int i = 1; i < 50; i++){
            System.out.println("RunnableDemo....run"+i);
        }

    }
}

某次的執行部分結果如下


從結果看,程式同樣也不是按照呼叫的順序來執行的,也具有一定的隨機性

這種方式的好處是避免了單繼承的侷限性,因為在Java中,類與類之間只允許單繼承,但類可以實現多個介面


相關文章