zoukankan      html  css  js  c++  java
  • 线程的停止

    /*
     线程的停止:
         1. 停止一个线程 我们一般都会通过一个变量去控制的。
         2. 如果需要停止一个处于等待状态下的线程,那么我们需要通过变量配合notify方法或者interrupt()来使用。
     */
    
    
    public class Demo6 extends Thread {
        
        boolean flag = true;
        
        public Demo6(String name){
            super(name);
        }
        
        
        @Override
        public synchronized void run() {
            int i = 0 ;
            while(flag){
                try {
                    this.wait(); //狗娃等待..
                
                } catch (InterruptedException e) {
                    System.out.println("接收到了异常了....");
                }
                System.out.println(Thread.currentThread().getName()+":"+i);
                i++;
            }
        }
        
        
        
        public static void main(String[] args) {
            Demo6 d = new Demo6("狗娃");
            d.setPriority(10);
            d.start();
            
            for(int i = 0 ; i<100 ; i++){
                System.out.println(Thread.currentThread().getName()+":"+i);
                //当主线程的i是80的时候停止狗娃线程。
                //d.interrupt();  // interrupt()根本就是无法停止一个线程。
                if(i==80){
                    d.flag = false;
                    d.interrupt(); //把线程的等待状态强制清除,被清除状态的线程会接收到一个InterruptedException。 
                    /*synchronized (d) {                    
                        d.notify();
                    }*/
                    
                    
                }
                
            }
            
            
        }
    
    }
  • 相关阅读:
    sed 删除最后几行 和删除指定行 awk使用
    nagios监控
    nginx服务启动脚本
    Linux修改环境变量的4种方法
    源码编译apache报错的解决方法
    apache源码安装及启动脚本添加
    haproxy配置
    awk命令2
    awk命令1
    通配符及变量
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6363231.html
Copyright © 2011-2022 走看看