gpt4 book ai didi

java - 从同一个 Storage 对象创建的 Insert 对象可以并发执行吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:08 24 4
gpt4 key购买 nike

我正在使用 Google 的 Java API 来处理 Google 云存储 (GCS)。

我有多个工作线程将对象插入到 GCS 中。目前他们共享一个共同的 Storage实例,并使用它来创建 Storage.Object.Insert实例:

synchronized(LOCK)
{
insertObject = mStorage.objects().insert(mBucketName, objectMetadata, mediaContent);
}

他们稍后在 Insert 实例上调用 execute(),将文件上传到 GCS。

insertObject.execute();

我的问题是我可以在不同线程中同时运行 execute() 调用吗? Insert 对象对于该线程是唯一的,但是创建它的 Storage 对象在线程之间共享,所以我担心这可能会导致问题。

提前致谢!

最佳答案

是的! :)

也就是说,假设您使用的 HttpTransport 实例是线程安全的,那么共享存储实例应该是线程安全的。不安全的是在没有提供额外锁定的情况下跨线程共享请求类本身或其响应。但只要每个线程都使用自己的请求类,它是安全的,实际上建议跨线程共享存储和实例。

注意:我是 google-api-java-client 项目的所有者

关于java - 从同一个 Storage 对象创建的 Insert 对象可以并发执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16158644/

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