zoukankan      html  css  js  c++  java
  • 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已经过时,存在不安全性问题


  • 相关阅读:
    迭代器与生成器
    函数
    Java多线程
    JVM垃圾回收
    JVM内存模型
    面向对象的特征和原则
    Java代码规范
    安装yum
    虚机ping:www.baidu.com报错
    创建好centos7虚拟机之后连xshell连不上虚机
  • 原文地址:https://www.cnblogs.com/yinbiao/p/10180012.html
Copyright © 2011-2022 走看看