• 第七章 取消与关闭


    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直接退出。  

    人生就像蒲公英,看似自由,其实身不由己。
  • 相关阅读:
    yii模板中常用变量总结
    Yii CDbCriteria的常用方法总结
    Yii框架Yiiapp()的理解
    Yii 中比较常用的rules验证规则记录
    c++,opencv播放视频
    python--输入一组无序的数,排序
    python入门,猜数
    关于爬楼梯问题的斐波那契数列
    获取文件名字,路劲中的某一部分信息
    简单帧差法
  • 原文地址:https://www.cnblogs.com/walker993/p/9290090.html
Copyright © 2020-2023  润新知