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