Java多執行緒的建立和啟動
參考:李剛《瘋狂java講義》
執行緒的建立和啟動
一、 繼承Thread類建立並啟動多執行緒
步驟:
1. 定義Thread類的子類,並重寫該類的run方法,run方法的方法體代表了執行緒要執行的任務;
2. 建立Thread類的子類的例項,即建立了執行緒物件;
3. 用執行緒物件的start方法來啟動執行緒。
程式碼示例:
//通過繼承Thread類來建立執行緒類
public class Test extends Thread
{
private int i ;
//重寫run方法,run方法的方法體就是執行緒執行體
public void run()
{
for ( ; i < 20 ; i++ )
{
//當執行緒類繼承Thread類時,可以直接呼叫getName()方法來返回當前執行緒的名。
//如果想獲取當前執行緒,直接使用this即可
//Thread物件的getName返回當前該執行緒的名字
System.out.println(getName() + " " + i);
}
}
public static void main(String[] args)
{
for (int i = 0; i < 20; i++)
{
//呼叫Thread類的靜態方法currentThread獲取當前執行緒物件,例項的getName獲得執行緒名
System.out.println(Thread.currentThread().getName() + " " + i);
if (i == 6)
{
//建立、並啟動第一條執行緒
new Test().start();
//建立、並啟動第二條執行緒
new Test().start();
}
}
}
}
輸出為:
main 0
main 1
main 2
main 3
main 4
main 5
main 6
Thread-0 0
Thread-0 1
Thread-0 2
Thread-0 3
Thread-0 4
Thread-0 5
Thread-0 6
Thread-0 7
Thread-0 8
Thread-0 9
Thread-0 10
Thread-0 11
Thread-0 12
Thread-0 13
Thread-0 14
Thread-0 15
Thread-0 16
Thread-0 17
Thread-0 18
Thread-0 19
main 7
main 8
main 9
main 10
main 11
main 12
main 13
main 14
main 15
main 16
main 17
main 18
main 19
Thread-1 0
Thread-1 1
Thread-1 2
Thread-1 3
Thread-1 4
Thread-1 5
Thread-1 6
Thread-1 7
Thread-1 8
Thread-1 9
Thread-1 10
Thread-1 11
Thread-1 12
Thread-1 13
Thread-1 14
Thread-1 15
Thread-1 16
Thread-1 17
Thread-1 18
Thread-1 19
一、 實現runnable介面建立執行緒類
1. 定義runnable介面的實現類,重寫該介面的run方法;
2. 建立runnable實現類的例項,並以此例項作為Thread的target來建立Thread物件,該Thread物件才是真正的執行緒物件。
3. 用執行緒物件的start方法來啟動執行緒。
例項程式碼:
//通過實現Runnable介面來建立執行緒類
public class Test implements Runnable
{
private int i ;
//run方法同樣是執行緒執行體
public void run()
{
for ( ; i < 100 ; i++ )
{
//當執行緒類實現Runnable介面時,
//如果想獲取當前執行緒,只能用Thread.currentThread()方法。
System.out.println(Thread.currentThread().getName() + " " + i);
}
}
public static void main(String[] args)
{
for (int i = 0; i < 100; i++)
{
System.out.println(Thread.currentThread().getName() + " " + i);
if (i == 20)
{
Test st = new Test();
//通過new Thread(target , name)方法建立新執行緒
new Thread(st , "新執行緒1").start();
new Thread(st , "新執行緒2").start();
}
}
}
}
從輸出可以看到,兩個執行緒的變數i的變化時連續的,也就是使用runnable介面的執行緒可以共享執行緒類的例項屬性,因為在這種情況下,程式建立的runnable物件只是執行緒的target,而多條執行緒可以共享一個target,所以執行緒可以共享執行緒類的例項屬性(實際上是執行緒的target類)。
相關文章
- 【Java基礎】:執行緒的建立和啟動Java執行緒
- python多執行緒程式設計2—執行緒的建立、啟動、掛起和退出Python執行緒程式設計
- Concurrency(二:建立和啟動執行緒)執行緒
- java 執行緒淺解01[建立以及啟動]Java執行緒
- 【java】【多執行緒】建立執行緒的兩種常用方式(2)Java執行緒
- Java建立多執行緒的四種方式Java執行緒
- Java建立多執行緒的一種方法Java執行緒
- Java多執行緒學習(1)建立執行緒與執行緒的生命週期Java執行緒
- MFC多執行緒的建立,包括工作執行緒和使用者介面執行緒執行緒
- Java多執行緒——執行緒Java執行緒
- C#多執行緒程式設計(1):執行緒的啟動C#執行緒程式設計
- 多執行緒和多執行緒同步執行緒
- C#多執行緒之旅(2):建立和開始執行緒C#執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- Java多執行緒-執行緒中止Java執行緒
- Java多執行緒——執行緒池Java執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- 【Java多執行緒】執行緒安全的集合Java執行緒
- Java執行緒篇——執行緒的開啟Java執行緒
- Java建立多執行緒的幾種方式實現Java執行緒
- 【Java多執行緒】輕鬆搞定Java多執行緒(二)Java執行緒
- JAVA中執行緒的建立Java執行緒
- Java 併發和多執行緒(一) Java併發性和多執行緒介紹[轉]Java執行緒
- JAVA多執行緒詳解(3)執行緒同步和鎖Java執行緒
- 面試官:Java 執行緒如何啟動的?面試Java執行緒
- 【JUC】1-Java執行緒的啟動Java執行緒
- java——多執行緒Java執行緒
- java 多執行緒Java執行緒
- 【Java】多執行緒Java執行緒
- JAVA 多執行緒 ??Java執行緒
- java多執行緒Java執行緒
- Java - 多執行緒Java執行緒
- java 多執行緒守護執行緒Java執行緒
- Java多執行緒-執行緒通訊Java執行緒
- Java多執行緒-執行緒狀態Java執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- java多執行緒9:執行緒池Java執行緒
- Java多執行緒之執行緒中止Java執行緒