標籤:

創建線程的幾種方式

說道線程,肯定會想到使用 java.lang.Thread.java這個類

那麼創建線程也主要有2種方式

第一種方式:

public class MyThread extends Thread { public void run() { System.out.println("這是MyThread線程"); }}

然後在調用處,執行start方法即可:

MyThread myThread = new MyThread();myThread.start();

第二種方式實現Runnable介面:

public class MyRunnable implements Runnable { public void run() { System.out.println("這是MyThread線程");   } }

同樣在執行的地方直接生命這個MyRunnable,再直接丟進線程start即可:

MyRunnable runBary = new MyRunnable();Thread thread = new Thread(runBary);thread.start();

這兩種方式都可以用匿名類的方式來實現,但是我並不推薦;

另外使用Thread本身來實現線程還是用Runnable來做,我推薦後者,因為相對來說會比較方便,直接往線程中一扔即可,如果使用spring的線程執行器也是同樣的道理,往執行器中丟入這個runnable即可

image

需要注意的是,執行線程的時候可以使用start()方法或者run()方法,雖然使用run會達到同樣的效果,

但是run是在主線程中使用的,也就是使用你當前的方法內線程,而不是另起一個線程,這樣就達不到非同步的效果,所以務必使用start()

尚自習 | 程序員的進階平台 itzixi.com

推薦閱讀:

我們為何要使用多線程,它有什麼優點?
多線程效率測試
關於如何構建一個線程安全的數組引發的思考
CountDownLatch實現計算線程阻塞
十. 內核線程

TAG:多線程 |