我最近写了一个有界的无锁队列,并正在为它做一些测试。在测试中,一些线程产生素数(通过从某个数字开始,计数生产者线程对数量的6倍,使用Deterministic Miller Rabin测试检查每个数字,并将素数插入到队列中)以及一些线程消耗素数(通过删除队列中的元素并检查它们是否为素数)。生产者线程与每对中的一个配对产生等于1模6的素数,而另一个产生等于5模6的素数(所有等于0,2,3或4模6的数
我试图解决使用Java中的监视器的单个消费者/生产者问题,代码如下。当我运行这段代码时,它最终会陷入困境。最典型的情况是消费者拨打wait(),然后生产者继续生产,但不能通知消费者(尽管它会呼叫notify())。我不知道为什么会发生。 Java代码: import java.util.*;
class Monitor {
int length;
int size;