002 線程的創建
阿新 • • 發佈:2018-05-01
AR 代碼 print color 創建 否則 rri div oid
一 . 概述
線程的創建由兩種方式,其實本質上講僅僅有一種.
[1]繼承Thread,重寫run()方法.
[2]實現Runnable接口,重寫run()方法.
我們其實可以將實現Runnable方法作為一種策略模式的實現.
二 .繼承Thread創建線程
@Test public void test() { new Thread() { public void run() { for(;;) System.out.println("running...."); }; }.start(); }
三 . 實現Runnable接口
@Test public void test2() { new Thread(new Runnable() { @Override public void run() { for(;;) System.out.println("running ... "); } }).start(); }
四 .比較
實際上線程的創建方式只有一種,就是創建Thread對象,然後啟動該線程,否則new狀態的線程實際上並不是真正的線程.
那麽,Runnable接口又是什麽情況呢?
其中的run()方法只是線程邏輯單元.
我們可以理解為是一種策略模式的應用,我們創建的線程是在執行不用的算法(策略).
註意 : 線程的啟動是需要調用JNI代碼的,也就是JVM分配了線程資源之後才能算得上是一個線程.
002 線程的創建