我有一个问题,有一个BoundedBuffer,有Consumers和Producers,生产者填充缓冲区,消费者从缓冲区中删除。 我对使用者和生产者使用线程,并尝试使用锁定条件来确保缓冲区对生产者来说不是满的,对消费者来说也不是空的。 不幸的是,它不是我想要的工作方式,似乎消费者/生产者,当他们在Condition.await中时,不让其他线程工作。他们不应该让他们这样做吗? 以下是我的代码 class main public static void main (String[] args) throws InterruptedException f
我在一个教程中看到了这一点,他们问下面的代码是否有问题。在我看来,b()似乎无法访问,因为a()已经拥有对监视器的控制。我这么想对吗? public synchronized void a() { System.out.println("I am at a"); public synchronized void b() { }