zoukankan      html  css  js  c++  java
  • sleep、wait、notify、notifyAll的区别

    Sleep 和wait

    1. sleep是Thread类的静态方法,wait是Object类中定义的方法
    2. Thread.sleep不会导致锁行为的改变,如果当前线程是拥有锁的,那么Thread.sleep不会让线程释放锁,而wait 会释放当前线程锁
    3. Thread.sleep需要设定休眠时间.Object.wait也可以设定wait时间,或者通过线程执行notify/notifyAll进行唤醒

    notify和notifyAll

    1. notify唤醒一个线程,如果有多线程在wait,可能是随机一个

    2. notifyAll唤醒所有在等待的线程,

    3. 使用中尽量使用notifyAll,因为notify容易导致线程死锁(nofity只唤醒一个,其他等待的线程没有唤醒)

    参考: https://blog.csdn.net/dreamweaver_zhou/article/details/79876805

        https://www.jianshu.com/p/25e243850bd2?appinstall=0

          https://www.cnblogs.com/happy-coder/p/6587092.html

    个人博客: https://lanxy.top
  • 相关阅读:
    1scala基础
    3scala高级
    03spark kafka
    01spark基础
    04spark streaming
    2scala集合
    02spark sql
    学习java程序设计环境的心得
    第五章继承
    第二周学习Java心得
  • 原文地址:https://www.cnblogs.com/layezi/p/10746989.html
Copyright © 2011-2022 走看看