根据这篇文章,我正在尝试在 Java 中扩展无锁队列的实现。
对于我的实现,我仅限于使用原子变量/引用。另外是我的队列应该有一个最大大小。因此,当队列已满时,putObject() 应该阻塞,如果队列为空,则 getObject() 应该阻塞。
目前我不知道如何在不使用锁的情况下解决这个问题。
例如,当使用 AtomicInteger 时,修改操作将是原子的。但是仍然存在我必须在 putObject() 和 getObject() 中处理检查和修改情况的问题,对吗?所以仍然存在检查当前队列大小后会中断入队线程的情况。
我目前的问题是,这个问题是否可以根据我目前的限制解决?
问候