1. 程式人生 > >Thread和實現介面Runnable的區別

Thread和實現介面Runnable的區別

首先,我更喜歡用Runnable的方式。Runnable的方式更接近共享同一資料的問題。

1,Thread執行緒實現是靠繼承,我們知道java是單繼承的。而Runnable是現實介面。這樣Runnable可以“多繼承”;

2,資料資源問題。Runnable實現多執行緒,是通過建立執行緒類來實現的。那麼現實Runnable介面的類。不需要多次建立。這樣的話,我們實現多執行緒的時候是用同一個實現的物件。看程式碼:

         MyRunnable my = new MyRunnable(); //只建立一次。那麼資料之間是共享的。        Thread t1 = new Thread(my, "執行緒一");        Thread t2 = new Thread(my, "執行緒二");

        而繼承Thread類,建立一個執行緒就要建立多一個執行緒實現類的物件。資料不是共享的。每次建立都是一個新的物件了。

        MyThread my1 = new MyThread();        MyThread my2 = new MyThread();        my1.start();        my2.start();如果是針對視窗買票的情況,實現Runnable更貼近。大家不妨思考一下。