我有如下的协议缓冲消息定义:
message Counts {
repeated int32 counts = 1;
}
以下是涉及IT技术的内容,需要翻译为中文:
这是一个在线程R
和W
之间共享的构建器:
private final Counts.Builder countsBuilder;
线程R
只会从countsBuilder
读取,而W
只会向countsBuilder
写入。
共享的构建器将被读取、写入,并在某个时刻构建并通过网络发送。
据我所知,对消息的并发读取是可以接受的,但其他任何操作都必须由开发人员在更高级别上同步。所以,我实际上不能同时写入和读取共享构建器吗?
如果这不是固有的线程安全性,则考虑使用某种线程安全的Collection<Integer>
,用于读取/写入,并在发送到网络之前(在某个时候)创建全新的消息。或者我错过了什么吗?
谢谢!
编辑1:我正在使用protobuf 2.4.1和java 6
编辑2:一些术语和拼写修正。