美文网首页
线程——wait和sleep

线程——wait和sleep

作者: Samuel_Tom | 来源:发表于2018-09-06 14:58 被阅读0次

    wait()和sleep()的区别

    sleep():

    1、sleep()是Thread类的方法;

    2、sleep()会使线程在指定的时间暂停线程的运行,但不会释放对象锁,当达到超时时间后,线程会自动进入可运行状态;

    3、sleep()可以在任意地方使用;

    4、sleep()必须捕获异常;

    wait():

    1、wait()是Object类的方法;

    2、wait()会暂停线程的运行,并释放对象锁,线程进入等待锁池中,只有调用notify()或notifyall()才进入可运行状态;

    3、wait(),notify()和notifyall()只能在同步方法或者同步块里面使用;

    4、wait()不需要捕获异常;

    补充

    1、如果线程调用了对象的wait()方法,那么线程便会处于该对象的等待池中,等待锁池中的线程不会去竞争该对象的锁;

    2、当有线程调用了对象的notifyAll()或notify(),被唤醒的线程便会进入该对象的锁池中,锁池中的线程会去竞争该对象锁;

    相关文章

      网友评论

          本文标题:线程——wait和sleep

          本文链接:https://www.haomeiwen.com/subject/xndxgftx.html