簡體   English   中英

Google Cloud Datastore Java API線程安全嗎?

[英]Is the Google Cloud Datastore Java API threadsafe?

這是Java示例: https//cloud.google.com/datastore/docs/getstarted/start_java/

建議創建一個靜態數據存儲對象,如下所示:

datastore = DatastoreFactory.get().create(DatastoreHelper.getOptionsfromEnv()
          .dataset(datasetId).build());

然后在多個線程中重用它,例如:

LookupResponse lresp = datastore.lookup(lreq.build());
datastore.commit(creq.build());

還是應該在每個線程上創建一個新的數據存儲?

謝謝!

com.google.api.services.datastore.client.Datastore對於常規操作是線程安全的。 它基於com.google.api.client.http.HttpRequestFactory也是線程安全的

唯一的例外是resetRpcCount()getRpcCount()方法(在將來的版本中將使它們成為線程安全的)。 另外,如果要在DatastoreOptions (稀有)中提供HttpRequestInitializer ,則它也必須是線程安全的。

理想情況下,操作完成后,您應該考慮釋放數據存儲對象,

獲取執行發布

讓我給你舉個例子,

PersistenceManager pm = PMF.get().getPersistenceManager();
// do your operations
pm.close();

PMF是一個單例類,在我看來,為每個線程創建一個新的數據存儲區可能會導致競爭狀況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM