我有一个包含许多生产者和消费者的应用程序。
据我了解,RingBuffer 在 RingBuffer init 开始时创建对象,然后在 Ring 中发布时复制对象并在 EventHandler 中从中获取它们。
我的应用程序 LogHandler 在列表中缓冲接收到的事件,以便在列表达到一定大小后进一步以批处理模式发送。因此 EventHandler#onEvent 将接收到的对象放入列表中,一旦达到大小,它就会在 RMI 中将其发送到服务器并清除它。
我的问题是,我是否需要在放入列表之前克隆对象,据我所知,一旦使用它们就可以重复使用?
我是否需要同步对 EventHandler#onEvent 中列表的访问?