[英]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.