zoukankan      html  css  js  c++  java
  • 第七章 取消与关闭

    1.中断:每个线程都有一个boolean类型的中断状态,中断是一种协作机制。

    public class Thread{
        //中断目标线程
        public void interrupt(){...}
        //返回目标线程的中断状态
        public boolean isInterrupted(){...}
        //清除当前线程的中断状态,并返回它之前的值,清除中断状态的唯一方法
        public static boolean interrupted(){...}
        ...      
    }

    2.阻塞库方法:

      在线程阻塞情况下,检查线程何时中断,并在发现中断时提前返回。响应中断的操作包括:清楚中断状态,抛出InterruptedException,表示阻塞操作由于中断而提前结束。

      Thread.sleep:线程进入休眠,保留持有的锁

      Object.wait:当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的锁,使得其他线程能够访问。可以通过notify,notifyAll方法来唤醒等待的线程,使该线程进入锁的竞争池。

    3.守护线程

      守护线程:在JVM启动时创建的所有线程中,除了主线程以外,其他线程都是守护线程(例如垃圾回收器以及其他执行辅助工作的线程)。

      当创建一个线程时,新线程将会继承创建它的线程的守护状态,在默认的情况下,主线程创建的所有线程都是普通线程。当JVM停止时,所有仍然存在的守护线程都将被抛弃——即不会执行finally代码块,也不会执行回卷栈,JVM直接退出。  

    人生就像蒲公英,看似自由,其实身不由己。
  • 相关阅读:
    C++ 中的深入浅拷贝和深拷贝
    C++ 引用小问题
    6-10
    6-8
    6-7
    6-4
    6-3
    6-1
    5-31
    COMException 依赖服务或组无法启动(0x8007042C)处理办法
  • 原文地址:https://www.cnblogs.com/walker993/p/9290090.html
Copyright © 2011-2022 走看看