BlockingQueue 提供方法有时不会将项目添加到列表

BlockingQueue offer method doesn't add item to list sometime

我在多线程系统中使用 BlockingQueue,其中同步块将项目添加到列表中。有时它不会将项目添加到列表中,它遗漏的项目是 random.I 尝试将以下行添加到代码中,然后它从未遗漏任何项目。

list.forEach(item -> logger.info(" In list "+item));

我觉得这种行为有点奇怪。有人可以帮我弄清楚如何解决丢失文件的问题吗?我不想不必要地遍历整个列表。我错过了什么吗?

offer 的文档说它有时可能会失败。

Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning true upon success and false if no space is currently available.

如果您可以在尝试添加时阻止,请使用 put

Inserts the specified element into this queue, waiting if necessary for space to become available.