我需要什么:
我想阻塞一个线程,直到我(或我没有)队列中的某个特定对象。
我有什么:
我做的解决方案不是很好。它只是一个带睡眠的循环(1000),用于搜索对象是否从队列中消失。它不是很好,因为它花费时间睡觉并花时间搜索队列中的某个对象。此外,我想不搜索队列,但要查看对象的引用计数(如果它是2,那么你的队列仍然指向该对象)但我害怕这个解决方案,也不知道如何实现它。
完整的任务:
我正在编写一个应用程序,它将消息发送到RabbitMQ节点并确认它们。在发送消息之前,我在同步队列中保存消息ID(因为多个线程发送消息)。确认消息后,我的应用程序收到ACK,消息ID已确认。客户端线程(发送消息)必须被阻止,并等到他没有收到他发送的消息的确认。
是否可以实施这样的解决方案?如果我们必须放置一个对象或从队列中删除一个对象,则不计量。两种解决方案都没问题。