一般我們使用多執行緒的時候,一般都會使用迴圈,畢竟如果就乙個語句,沒必要使用多執行緒
那麼怎樣停止乙個執行緒呢?
執行緒停止無外乎2種,要麼是執行完了任務,要麼強制停止
執行緒的停止:
1.我們可以定義乙個boolean型別的變數結合notity方法去控制線程的停止(使用notity是為了防止要被停止的執行緒wait)
2.也可以使用interrupt方法(強制停止會讓wait方法拋異常),至於start方法淘汰了,不建議使用
下面是兩種方式讓執行緒停止的例子:
方式一例子:
publicclass demo10 implements
runnable
catch
(interruptedexception e)
}system.out.println(thread.currentthread().getname());}}
public
static
void
main(string args)
}system.out.println(thread.currentthread().getname()+i);}}
}
方式二:例子2
publicclass demo10 implements
runnable
catch
(interruptedexception e)
}system.out.println(thread.currentthread().getname());}}
public
static
void
main(string args)
system.out.println(thread.currentthread().getname()+i);}}
}
注意:這兩個例子會出現過了20後,還會出現一次狗娃執行緒輸出的語句
應該是狗娃執行緒剛判斷是true後還沒來得急執行輸出語句,cpu就被main執行緒強去了,才導致後面還會執行一次(不過執行緒是真的停止了)
也有可能是wait造成的(去掉了也可能出現這種情況,畢竟我們沒有用鎖)
執行緒之停止執行緒
停止執行緒有三種方法 1.建議正常停止 利用次數,不建議死迴圈 2.建議使用標誌位 設定乙個標誌位 3.不要使用stop或者destoy等過時或者jdk不建議使用的方法舉例說明 想讓乙個正在執行的程式停下來,執行其他程式,執行完以後再進行自己的程式 怎麼來解決呢?可以自己設定乙個標識位.在自己的程式...
執行緒的停止
執行緒停止 執行緒的停止 1.停止乙個執行緒 我們一般都會通過乙個變數去控制的。2.如果需要停止乙個處於等待狀態下的執行緒,那麼我們需要通過變數配合notify方法或者interrupt 來使用。public class threaddemo5 extends thread public synch...
Java停止執行緒
1 run方法正常結束 public class stopthreaddemo class printthread extends thread 2 可以在run方法中設定標記讓執行緒正常結束 public class stopthreaddemo class printthread extends...