3
我有以下的protobuf MSG定义:是java中的protobuf线程安全的吗?
message Counts {
repeated int32 counts = 1;
}
该线程R
和W
之间共享作为助洗剂:
private final Counts.Builder countsBuilder;
螺纹R
将只从countsBuilder
读取和W
将只写入countsBuilder
。 共享构建器将被读取,写入并且(在某个时候)通过网络发送构建&。 AFAIK,对消息的并发读取是正常的,但其他任何事情都必须由开发人员在更高级别进行同步?那么,我实际上无法同时写入和阅读共享的构建器?
如果这不是固有的线程安全的,我正在考虑使用某种线程安全的Collection<Integer>
,我将用它来读/写,并将在发送之前创建一个全新的消息它通过网络。或者我错过了什么?
谢谢!
EDIT 1:我使用的protobuf 2.4.1和java 6
编辑2:一些术语和拼写修复。
你将如何*建议*“写入共享信息”?消息是不可变的。你必须写信给* builder *。 – 2012-04-21 11:45:34
糟糕,我相信我使用了错误的术语。我会写信给建设者,并在发送时转换为消息。 – Howie 2012-04-21 12:04:29