public class Thread extends Object implements Runnable
有兩種方法,繼承Thread or 實作Runnable
1. 繼承Thread:
執行結果:
herongsendeMacBook-Air:160704-multithread RongSonHo$ time java test2
Hello test2
This is bThread!
This is bThread!
This is bThread!
This is bThread!
Thread-1: 0
Thread count: 5
Thread-3: 0
Thread-2: 0
Thread-0: 0
Thread-2: 1
Thread-3: 1
Thread-1: 1
Thread-3: 2
Thread-2: 2
Thread-0: 1
Thread-2: 3
Thread-3: 3
Thread-1: 2
Thread-3: 4
Thread-2: 4
Thread-0: 2
Thread-2: 5
Thread-3: 5
Thread-1: 3
Thread-3: 6
Thread-2: 6
Thread-2: 7
Thread-0: 3
Thread-2: 8
Thread-3: 7
Thread-1: 4
Thread-3: 8
Thread-2: 9
Thread-0: 4
Thread-2: 10
Thread-3: 9
Thread-1: 5
Thread-3: 10
Thread-2: 11
Thread-0: 5
Thread-2: 12
Thread-3: 11
Thread-1: 6
Thread-3: 12
Thread-2: 13
Thread-0: 6
Thread-2: 14
Thread-2: 15
Thread-3: 13
Thread-1: 7
Thread-3: 14
Thread-2: 16
Thread-0: 7
Thread-2: 17
Thread-3: 15
Thread-1: 8
Thread-3: 16
Thread-2: 18
Thread-0: 8
Thread-2: 19
Thread-3: 17
Thread-1: 9
Thread-3: 18
Thread-2: 20
Thread-0: 9
Thread-2: 21
Thread-3: 19
Thread-1: 10
Thread-3: 20
Thread-2: 22
Thread-0: 10
Thread-2: 23
Thread-3: 21
Thread-1: 11
Thread-3: 22
Thread-2: 24
Thread-0: 11
Thread-2: 25
Thread-3: 23
Thread-1: 12
Thread-3: 24
Thread-2: 26
Thread-0: 12
Thread-2: 27
Thread-3: 25
Thread-1: 13
Thread-3: 26
Thread-2: 28
Thread-0: 13
Thread-2: 29
Thread-3: 27
Thread-1: 14
Thread-3: 28
Thread-2: 30
Thread-0: 14
Thread-2: 31
Thread-3: 29
Thread-1: 15
Thread-3: 30
Thread-2: 32
Thread-0: 15
Thread-2: 33
Thread-3: 31
Thread-1: 16
Thread-3: 32
Thread-3: 33
Thread-3: 34
Thread-2: 34
Thread-0: 16
Thread-0: 17
Thread-2: 35
Thread-3: 35
Thread-1: 17
Thread-3: 36
Thread-2: 36
Thread-0: 18
Thread-2: 37
Thread-3: 37
Thread-3: 38
Thread-3: 39
Thread-1: 18
Thread-3: 40
Thread-2: 38
Thread-0: 19
Thread-2: 39
Thread-3: 41
Thread-1: 19
Thread-3: 42
Thread-2: 40
Thread-2: 41
Thread-0: 20
Thread-0: 21
Thread-2: 42
Thread-3: 43
Thread-1: 20
Thread-3: 44
Thread-2: 43
Thread-0: 22
Thread-2: 44
Thread-3: 45
Thread-1: 21
Thread-3: 46
Thread-2: 45
Thread-0: 23
Thread-2: 46
Thread-3: 47
Thread-1: 22
Thread-3: 48
Thread-2: 47
Thread-0: 24
Thread-2: 48
Thread-3: 49
Thread-1: 23
Thread-3: 50
Thread-2: 49
Thread-0: 25
Thread-2: 50
Thread-3: 51
Thread-1: 24
Thread-3: 52
Thread-2: 51
Thread-0: 26
Thread-2: 52
Thread-3: 53
Thread-1: 25
Thread-3: 54
Thread-2: 53
Thread-0: 27
Thread-2: 54
Thread-3: 55
Thread-1: 26
Thread-3: 56
Thread-2: 55
Thread-0: 28
Thread-2: 56
Thread-3: 57
Thread-3: 58
Thread-1: 27
Thread-3: 59
Thread-2: 57
Thread-0: 29
Thread-2: 58
Thread-3: 60
Thread-1: 28
Thread-3: 61
Thread-2: 59
Thread-0: 30
Thread-0: 31
Thread-2: 60
Thread-3: 62
Thread-1: 29
Thread-3: 63
Thread-2: 61
Thread-2: 62
Thread-0: 32
Thread-0: 33
Thread-2: 63
Thread-2: 64
Thread-3: 64
Thread-1: 30
Thread-3: 65
Thread-2: 65
Thread-0: 34
Thread-2: 66
Thread-3: 66
Thread-1: 31
Thread-3: 67
Thread-2: 67
Thread-2: 68
Thread-0: 35
Thread-2: 69
Thread-3: 68
Thread-1: 32
Thread-1: 33
Thread-1: 34
Thread-3: 69
Thread-2: 70
Thread-0: 36
Thread-2: 71
Thread-3: 70
Thread-3: 71
Thread-1: 35
Thread-3: 72
Thread-2: 72
Thread-0: 37
Thread-2: 73
Thread-3: 73
Thread-1: 36
Thread-3: 74
Thread-2: 74
Thread-2: 75
Thread-0: 38
Thread-2: 76
Thread-3: 75
Thread-1: 37
Thread-3: 76
Thread-2: 77
Thread-0: 39
Thread-2: 78
Thread-3: 77
Thread-1: 38
Thread-3: 78
Thread-2: 79
Thread-0: 40
Thread-2: 80
Thread-3: 79
Thread-1: 39
Thread-3: 80
Thread-3: 81
Thread-3: 82
Thread-2: 81
Thread-0: 41
Thread-2: 82
Thread-3: 83
Thread-1: 40
Thread-3: 84
Thread-2: 83
Thread-0: 42
Thread-2: 84
Thread-3: 85
Thread-1: 41
Thread-3: 86
Thread-2: 85
Thread-0: 43
Thread-2: 86
Thread-3: 87
Thread-1: 42
Thread-1: 43
Thread-3: 88
Thread-2: 87
Thread-0: 44
Thread-2: 88
Thread-3: 89
Thread-1: 44
Thread-3: 90
Thread-2: 89
Thread-0: 45
Thread-2: 90
Thread-3: 91
Thread-3: 92
Thread-1: 45
Thread-3: 93
Thread-2: 91
Thread-0: 46
Thread-2: 92
Thread-3: 94
Thread-1: 46
Thread-3: 95
Thread-2: 93
Thread-0: 47
Thread-2: 94
Thread-3: 96
Thread-1: 47
Thread-3: 97
Thread-2: 95
Thread-0: 48
Thread-2: 96
Thread-3: 98
Thread-1: 48
Thread-3: 99
Thread-2: 97
Thread-0: 49
Thread-2: 98
Thread-2: 99
Thread-1: 49
Thread-0: 50
Thread-1: 50
Thread-1: 51
Thread-0: 51
Thread-1: 52
Thread-0: 52
Thread-1: 53
Thread-0: 53
Thread-1: 54
Thread-0: 54
Thread-1: 55
Thread-0: 55
Thread-1: 56
Thread-0: 56
Thread-1: 57
Thread-0: 57
Thread-1: 58
Thread-0: 58
Thread-1: 59
Thread-0: 59
Thread-1: 60
Thread-0: 60
Thread-1: 61
Thread-0: 61
Thread-1: 62
Thread-0: 62
Thread-0: 63
Thread-1: 63
Thread-0: 64
Thread-1: 64
Thread-0: 65
Thread-0: 66
Thread-1: 65
Thread-0: 67
Thread-1: 66
Thread-0: 68
Thread-1: 67
Thread-0: 69
Thread-1: 68
Thread-0: 70
Thread-1: 69
Thread-1: 70
Thread-1: 71
Thread-1: 72
Thread-0: 71
Thread-1: 73
Thread-0: 72
Thread-1: 74
Thread-0: 73
Thread-1: 75
Thread-0: 74
Thread-1: 76
Thread-1: 77
Thread-0: 75
Thread-1: 78
Thread-0: 76
Thread-1: 79
Thread-0: 77
Thread-1: 80
Thread-1: 81
Thread-0: 78
Thread-1: 82
Thread-0: 79
Thread-0: 80
Thread-0: 81
Thread-1: 83
Thread-0: 82
Thread-1: 84
Thread-1: 85
Thread-0: 83
Thread-0: 84
Thread-1: 86
Thread-0: 85
Thread-0: 86
Thread-1: 87
Thread-0: 87
Thread-1: 88
Thread-0: 88
Thread-0: 89
Thread-1: 89
Thread-0: 90
Thread-1: 90
Thread-0: 91
Thread-1: 91
Thread-0: 92
Thread-1: 92
Thread-0: 93
Thread-1: 93
Thread-1: 94
Thread-0: 94
Thread-1: 95
Thread-1: 96
Thread-1: 97
Thread-0: 95
Thread-1: 98
Thread-1: 99
Thread-0: 96
Thread-0: 97
Thread-0: 98
Thread-0: 99
real 0m0.457s
user 0m0.179s
sys 0m0.105s
ps. 預設的Thread Name: Thread-0…
Thread的Constructor:
1. Thread() 分派新的執行緒 -> test1.java
2. Thread(String name)3. Thread(Runnable target) 傳入一個Runnable物件,並分派新的執行緒 -> test2.java
4. Thread(Runnable target, String name)
1. String getName() 取得名稱
2. int getPriority() 取得優先權
3. void setPriority() 可設參數1~10或MIN_PRIORITY=1、NORM_PRIORITY=5、MAX_PRIORITY=10
4. void start 將執行丟入Runnable pool中,等待系統run()呼叫
5. void run() 開始執行工作(由系統自動呼叫,非程式設計師撰寫)
6. static void yield() 將目前執行緒先行暫停,重新排程,讓與其他執行緒執行
7. static void sleep(long millis) 暫停目前執行緒,需在try-catch中呼叫,會丟出throws InterruptedException
8. void join() / void join(long millis) 用於調整執行緒執行順序,先暫停目前執行緒,而指定其他執行緒加入執行工作,執行完畢後才回復,或可設定執行時間,需在try-catch中呼叫,會丟出throws InterruptedException
9. void stop() 停止正在執行的執行緒 (不建議使用,易造成死結)
10. void suspend() 停止正在執行的執行緒 (不建議使用,易造成死結)
11. void destroy() 毀掉執行緒
12. boolean isAlive() 取得目前執行緒狀態
13. void wait() 讓執行緒進入等待狀態
14. void notify() 喚醒一個等待中的執行緒,若有多個執行緒,則由JVM決定
15. void notifyAll() 喚醒所有等待中的執行緒
參考:
1. MEMO 123: JAVA筆記-Thread 多執行緒基本撰寫範例與常用函式 :http://jhengjyun.blogspot.tw/2011/04/1.html