java中線程的幾種狀態和停止線程的方法


1.線程的狀態圖

QQ截圖20181226161353

需要注意的是:線程調用start方法是使得線程到達就緒狀態而不是運行狀態


2.停止線程的兩種方法

1)自然停止:線程體自然執行完畢

2)外部干涉:通過線程體標識

  1.線程類中定義線程體能夠使用的標識

  2.線程體使用該標識

  3.提供對外的方法改變該標識

  4.外部根據條件調用該方法即可

ThreadStop.java:

package 多線程; public class ThreadStop { public static void main(String[] args) { //真實角色
        Study s = new Study(); //匿名代理
        new Thread(s).start(); //外部干涉
        for(int i=1;i<=100;i++) { if(i==50) { s.stop(); } System.out.println("main--->"+i); } } } class Study implements Runnable{ //線程體類中定義線程體能夠使用的標識
    private boolean flag=true; private int x=1; @Override public void run() { // TODO Auto-generated method stub //線程體改變該標識
        while(flag) { System.out.println("Study"+x+"秒"); x++; } } //對外提供方法改變標識
    public void stop() { this.flag=false; } }

注意:代理類系統自動提供的stop方法不要使用,要用stop的話,自己在線程類里面寫一個,因為代理類系統自動提供的stop已經過時,存在不安全性問題



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM