1. 程式人生 > >002 線程的創建

002 線程的創建

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 線程的創建