关于多线程:当java线程无法执行synchronized语句时会发生什么?

what happens when java thread fails to execute synchronized statement?

本问题已经有最佳答案,请猛点这里访问。

当另一线程获得监视器时,Java线程A无法执行同步语句。< BR>线程A由JVM排队?< BR>线程A是如何在1)或2之后被激活的?

  • 一旦监视器被释放,JVM就会发送这个信号,线程A就会被激活。
  • JVM将检测监视器是否在一段时间内可用,如果监视器可用,线程A可能会被激活。

  • Java语言规范在第17.1节系统中表示:

    [...] Only one thread at a time may hold a lock on a monitor. Any
    other threads attempting to lock that monitor are blocked until they
    can obtain a lock on that monitor. [...]