gpt4 book ai didi

java - java中的protobuf是线程安全的吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:42:53 24 4
gpt4 key购买 nike

我定义了以下 protobuf 消息:

message Counts {
repeated int32 counts = 1;
}

在线程间共享RW作为 build 者:

private final Counts.Builder countsBuilder;

线程 R只会读取 countsBuilderW只会写入 countsBuilder .共享构建器将被读取、写入和(在某个时候)构建并通过网络发送。

据我所知,并发读取消息没问题,但开发人员必须在更高级别同步其他任何内容吗?那么,我实际上不能同时写入和读取共享构建器吗?

如果这本身不是线程安全的,我正在考虑使用某种线程安全的 Collection<Integer>我将用它来读/写,并且(在某个时候)会在通过网络发送之前创建一条全新的消息。还是我遗漏了什么?

谢谢!

编辑 1:我正在使用 protobuf 2.4.1 和 java 6

编辑 2:一些术语和拼写修复。

最佳答案

如果同步读取写入应该没问题:

synchronized (countsBuilder) {
// modify countsBuilder
}

但请记住,您还需要确保在构建消息时没有任何竞争条件;构建消息后,不允许编写器线程进行任何写入。

关于java - java中的protobuf是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com