玩轉java多執行緒 之多執行緒基礎 執行緒狀態 及執行緒停止實戰
從網上先找了下,覺得這兩張圖比較好
比較清楚的看到執行緒的5大狀態
新生狀態:
Thread t = new Thread()
執行緒物件一旦建立,就進入到新生狀態
就緒狀態
當呼叫start()方法,執行緒立即進入就緒狀態的,但是並不意味著立即排程執行
阻塞狀態:
當呼叫sleep,wait或者是同步鎖定時,執行緒進入阻塞狀態,程式碼不往下繼續執行,阻塞事件解除後,重新進入就緒狀態,等待cpu的排程執行
執行狀態:
進入執行狀態,執行緒真正執行執行緒體的程式碼塊
dead狀態:
執行緒中斷或者結束,一旦進入死亡狀態,就不能再次啟動
執行緒方法:
//更改執行緒的優先順序
setPriority(int new Priority)
//在指定的毫秒數讓正在執行的執行緒休眠
static void sleep(long millis)
//等待該執行緒終止
void join()
//暫停當前正在執行的執行緒物件,並執行其他執行緒
static void yield()
//中斷執行緒,別用這個方式
void interrupt()
//測試執行緒是否處於活動狀態
boolean isAlive()
停止執行緒,不推薦使用jdk提供的stop(),destroy()方法,這兩個方法已經廢棄
推薦執行緒自己停止下來
建議使用一個標誌位進行終止變數,當flag=false,終止執行緒執行
好了,看下程式碼
package duoxiancheng;
//測試執行緒停止
public class TestStop implements Runnable{
//設定一個標誌位
private boolean flag = true;
@Override
public void run() {
int i = 0;
while(flag) {
System.out.println("run ... Thread" + i++);
}
}
//設定一個公開的方法停止執行緒,轉換標誌位
public void stop() {
this.flag = false;
}
public static void main(String[] args) {
TestStop testStop = new TestStop();
new Thread(testStop).start();
for (int i = 0; i < 1000; i++) {
System.out.println("main" + i);
if(i == 900) {
//呼叫stop方法切換標誌位,停止執行緒
testStop.stop();
System.out.println("執行緒該停止了");
}
}
}
}
這個我都是在b站跟著狂神視訊做的筆記,
大家有興趣可以看下,講的很贊
好了,今天就先到這裡了~
相關文章
- Java多執行緒-執行緒狀態Java執行緒
- 【java多執行緒】(二)執行緒停止Java執行緒
- Java 多執行緒基礎(四)執行緒安全Java執行緒
- Java多執行緒——執行緒Java執行緒
- 多執行緒的執行緒狀態及相關操作執行緒
- 【多執行緒與高併發】- 執行緒基礎與狀態執行緒
- Java 多執行緒基礎(八)執行緒讓步Java執行緒
- 多執行緒系列(1),多執行緒基礎執行緒
- 多執行緒系列(二):多執行緒基礎執行緒
- Java多執行緒-執行緒中止Java執行緒
- Java多執行緒——執行緒池Java執行緒
- Java執行緒池一:執行緒基礎Java執行緒
- Java多執行緒之守護執行緒實戰Java執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 多執行緒系列(三):執行緒池基礎執行緒
- 多執行緒-執行緒控制之休眠執行緒執行緒
- 多執行緒-執行緒控制之加入執行緒執行緒
- 多執行緒-執行緒控制之禮讓執行緒執行緒
- 多執行緒-執行緒控制之中斷執行緒執行緒
- 多執行緒學習一(多執行緒基礎)執行緒
- 多執行緒-執行緒的狀態轉換圖及常見執行情況執行緒
- 多執行緒併發篇——如何停止執行緒執行緒
- 執行緒6--執行緒的狀態執行緒
- java 多執行緒守護執行緒Java執行緒
- Java多執行緒-執行緒通訊Java執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- java多執行緒9:執行緒池Java執行緒
- Java多執行緒之執行緒中止Java執行緒
- Java多執行緒——守護執行緒Java執行緒
- Java多執行緒16:執行緒組Java執行緒
- Java多執行緒18:執行緒池Java執行緒
- 多執行緒【執行緒池】執行緒
- 多執行緒--執行緒管理執行緒
- 執行緒與多執行緒執行緒
- Java執行緒池中執行緒的狀態簡介Java執行緒
- Java 多執行緒基礎(十一)執行緒優先順序和守護執行緒Java執行緒
- java執行緒程式設計(一):執行緒基礎(轉)Java執行緒程式設計
- 多執行緒-執行緒控制之守護執行緒執行緒