zoukankan      html  css  js  c++  java
  • 线程终止

    线程状态

    • new Thread()创建线程,此时线程处在创建状态

    • 调用start()函数,线程进行就绪状态

    • 当获得CPU资源时,线程进入运行状态,执行线程体的代码块

    • 当调用sleep,wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行等阻塞事件解除后,重新进入就绪状态。

    • 当线程中断或结束,进入线程终止状态

      image-20201016174723013

    线程停止

    线程停止主要可以采用两种方法

    • 采用JDK提供的stop()、destroy方法,但这种方法已经废弃,不推荐使用。
    • 通过设置标志位使线程自己终止运行,下面通过代码举例介绍。
    package MultiProcess;
    
    //测试stop
    //1.建议线程正常停止
    //2.建议使用标志位
    //3.不要使用stop和destroy等JDK不推荐使用的方法
    public class ThreadStop 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) {
            ThreadStop threadStop = new ThreadStop();
            new Thread(threadStop).start();
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            for (int i = 0; i < 10000; i++) {
                System.out.println("main" + i);
                if (i == 9000) {
                    threadStop.stop();
                    System.out.println("线程终止了");
                }
            }
        }
    }
    
  • 相关阅读:
    通过设置P3P头来实现跨域访问COOKIE
    随心所欲玩复制 详解robocopy
    MySQL的mysqldump工具的基本用法
    uvm_void 寂静的空宇
    Chisel语言
    IP-XACT IP IEEE交换格式
    SystemC简介
    ( 转)UVM验证方法学之一验证平台
    (转)让你彻底理解:静态时序分析
    (转)存储芯片入门漫谈
  • 原文地址:https://www.cnblogs.com/happysml/p/13827701.html
Copyright © 2011-2022 走看看