2016-04-19 33 views

回答

3

如果您使用數據庫實例,常用的方法是爲每個線程分別設置此對象的實例,爲了簡化此任務,您可以使用數據庫對象池,例如com.orientechnologies.orient.core.db.OPartitionedDatabasePool 。 通常只有OStorage實例是線程安全的,其餘對象不應該在線程之間共享,而應該使用數據庫實例加載。

+0

嗯...這種有點難以從數據庫中提取和保存數據。通過ODocument API查看我發現有很多不可線程安全的可變數據(例如_dirty)。 有什麼辦法讓數據庫反序列化成不可變的數據結構? – user48956

+0

您可以在線程之間交換文檔/頂點/邊線,您不能一次在2個線程中更改它們。你也不能共享數據庫實例,你應該像連接或會話那樣考慮它們。 –