监察及;通知及;用Java通知所有人

监察及;通知及;用Java通知所有人,java,multithreading,monitor,Java,Multithreading,Monitor,我正在做一个关于显示器的在线测试。这是4个正确或错误的问题和我的答案。如果我的答案错了,你能解释一下原因吗 在Java中使用监视器时,如果使用notifyAll(),绝对不会发生饥饿 只有声明为扩展线程或实现可运行的对象在JavaF 如果使用notifyAll(),在Java中使用监视器时肯定不会发生饥饿F 如果一个线程因为其他线程占用了CPU时间而没有被授予CPU时间,则称为“饥饿” 使用notifyAll()时,JVM会唤醒所有线程,然后唤醒所有线程 线程争用此对象上的锁。现在,CPU调度

我正在做一个关于显示器的在线测试。这是4个正确或错误的问题和我的答案。如果我的答案错了,你能解释一下原因吗

  • 在Java中使用监视器时,如果使用notifyAll(),绝对不会发生饥饿

  • 只有声明为扩展线程或实现可运行的对象在JavaF

  • 如果使用notifyAll(),在Java中使用监视器时肯定不会发生饥饿F

    如果一个线程因为其他线程占用了CPU时间而没有被授予CPU时间,则称为“饥饿”

    • 使用
      notifyAll()
      时,JVM会唤醒所有线程,然后唤醒所有线程 线程争用此对象上的锁。现在,CPU调度器选择 获取此对象锁的线程。这意味着使用
      notifyAll()
      无法避免饥饿,因为某些线程可能总是会丢失争用
    • 此外,线程被不确定地阻止,等待进入 同步块,因为其他线程是不断允许的 在它之前访问。饥饿也会发生
    仅声明为扩展线程或实现runnable的对象 在Java中有一个监视器锁F


    来自
    java.lang.Object
    的每个类都有监视器锁

    奇怪的测验。Java实际上没有Brich-Hansen意义上的监视器。当他看到Java时,他评论说“显然我徒劳了”。你有理由认为他们错了吗?@shmosel我没有,只是想确保他们是正确的。@EJP确切地说,我已经用Java编程两年了,从来没有听说过监视器:/我想监视器术语是从jvm monitorenter/monitorexit指令派生出来的