zoukankan      html  css  js  c++  java
  • java线程中的sleep/wait/notify/yield/interrupt方法 整理

    java线程中的sleep/wait/notify/yield/interrupt方法

    sleep

    • 该方法能够使当前线程休眠一段时间
    • 休眠期间,不释放锁
    • 休眠时间结束之后,进入可执行状态,加入到线程就绪队列中,并不会立即执行
    • 调用的时候,必须捕获异常
    • 来自Thread的静态方法,只作用于当前线程
    • 单位毫秒

    wait

    • 该方法能干是当前线程休眠一段时间
    • 休眠期间,释放锁
    • 休眠时间结束之后,立即执行
    • 调用的时候无需捕获异常
    • 来自Object类的方法,一旦调用
    • 单位毫秒
    • 调用wait()方法进入休眠之后,通过notify()/notifyAll()方法唤醒

    join

    有点特别
    假如线程a中调用线程b的join()(这个时候b已经开始执行了),结果是线程a必须等b执行完,a才能继续执行

    个人感觉有点抽象,不符合某些设计原则,会把程序的代码结构搞得很乱。这样的方法用的很少

    yield

    与sleep类似,不能由用户指定休眠时间。只能让同优先级的线程有执行的机会。

    interrupt

    interrupt()中断线程。需要注意的是,InterruptedException是线程自己从内部抛出的,并不是interrupt()方法抛出的。对某一线程调用interrupt()时,如果该线程正在执行普通的代码,那么该线程根本就不会抛出InterruptedException。但是,一旦该线程进入到wait()/sleep()/join()后,就会立刻抛出InterruptedException。

  • 相关阅读:
    [BZOJ3513] idiots
    2020牛客暑期多校训练营(第六场)A
    2020牛客暑期多校训练营(第六场)J
    2020牛客暑期多校训练营(第六场)H
    2020牛客暑期多校训练营(第六场)G
    2020牛客暑期多校训练营(第六场)K
    组队训练日志 2020.10.05
    Java基础
    Auditd
    Snort记录
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/5496676.html
Copyright © 2011-2022 走看看