美文网首页
47、sleep()和 wait()有什么区别?

47、sleep()和 wait()有什么区别?

作者: 守望青年 | 来源:发表于2017-05-05 21:11 被阅读0次

    (网上的答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。)

    多线程有几种实现方法?同步有几种实现方法?

    多线程有两种实现方法,分别是继承Thread类与实现Runnable接口

    同步的实现方面有两种,分别是synchronized,wait与notify

    wait():使一个线程处于等待状态,并且释放所持有的对象的lock。

    sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。

    notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

    相关文章

      网友评论

          本文标题:47、sleep()和 wait()有什么区别?

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