我想知道当我们收到ACK时会发生什么。我们是在单个线程中还是在多个线程中接收到ACK?
是单个线程还是多个线程使用handleAck和handleNack方法?如果它们由单个线程使用,则可以。但是,如果它们被多个线程使用,则我们必须以线程安全的方式构造代码。
您不需要编写ConfirmListener
线程安全的代码,但不是因为不会从多个线程中调用ack
andnack
方法,而是因为您不应该Channel
在线程之间共享a 。
该文档特别指出了这一点:
虽然通道上的某些操作可以安全地并发调用,但有些操作则不能并发调用,这会导致错误的帧交错在电线上。线程之间共享通道也会干扰*发布者确认。
当您发布到代理时,只是不共享频道。通道是轻量级的,创建起来并不昂贵。这样,您也不必担心确认。
如果您确实共享频道,则上述报价会干扰您的确认。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句