次のprotobufmsgを定義しています。
message Counts {
repeated int32 counts = 1;
}
これはスレッド間R
およびW
ビルダーとして共有されます:
private final Counts.Builder countsBuilder;
スレッドR
はからの読み取りcountsBuilder
とW
書き込みのみを行いcountsBuilder
ます。共有ビルダーは、読み取り、書き込み、および(ある時点で)構築され、ネットワークを介して送信されます。
AFAIK、メッセージへの同時読み取りは問題ありませんが、開発者がより高いレベルで同期する必要があるものは他にありますか?だから、私は実際に共有ビルダーに同時に書き込みと読み取りを行うことはできませんか?
これが本質的にスレッドセーフではない場合、私は読み取り/書き込みに使用するある種のスレッドセーフCollection<Integer>
を使用することを考えており、ネットワーク経由で送信する直前に(ある時点で)まったく新しいメッセージを作成します。それとも私は何かが足りないのですか?
ありがとう!
編集1:私はprotobuf2.4.1とjava6を使用しています
編集2:いくつかの用語とスペルの修正。