在Java中要想實現多線程,有兩種方式,一種是繼承Thread類,另一種是實現Runable接口。java
方法一:多線程
經過Thread實現多線程ide
package multiThread; /** * 繼承Thread類實現多線程 * * @author Leizhi 2016/5/18 * @see * @since 1.0 */ public class MultiThreadExtendsThread extends Thread { @Override public void run() { /** * 要實現的多線程代碼 */ System.out.println("This multiThread is extends from Thread"); } }
方法二:操作系統
實現Runable接口實現多線程線程
package multiThread; /** * 實現Runable接口實現多線程 * * @author Leizhi 2016/5/19 * @see * @since 1.0 */ public class MultiThreadImpRunnable implements Runnable { @Override public void run() { System.out.println("This multiThread is implements from Runnable..."); } }
使用多線程
package multiThread; /** * 使用多線程 * * @author Leizhi 2016/5/19 * @see * @since 1.0 */ public class UseMultiThread { public static void main(String[] args) { /*繼承Thread類的線程運行*/ MultiThreadExtendsThread multiThreadExtendsThread = new MultiThreadExtendsThread(); multiThreadExtendsThread.start(); /*實現Runable接口線程運行*/ MultiThreadImpRunnable multiThreadImpRunnable = new MultiThreadImpRunnable(); new Thread(multiThreadImpRunnable).start(); } }
運行效果截圖code
Thread和Runnable的區別
若是一個類繼承Thread,則不適合資源共享。可是若是實現了Runable接口的話,則很容易的實現資源共享。
實現Runnable接口比繼承Thread類所具備的優點:
一、適合多個相同的程序代碼的線程去處理同一個資源
二、能夠避免java中的單繼承的限制
三、增長程序的健壯性,代碼能夠被多個線程共享,代碼和數據獨立。繼承
注意:接口
main方法其實也是一個線程。在java中因此的線程都是同時啓動的,至於何時,哪一個先執行,徹底看誰先獲得CPU的資源。在java中,每次程序運行至少啓動2個線程。一個是main線程,一個是垃圾收集線程。由於每當使用java命令執行一個類的時候,實際上都會啓動一個JVM,每個jVM實習在就是在操做系統中啓動了一個進程。進程