2011-06-10 59 views

回答

0

如果他們試圖同時寫一些東西,比我想的要好,你會得到錯誤。 更不用說衝突了,如果2線程會嘗試改變相同的數據。

我認爲更好的解決方案是1管理器寫入數據庫和操作隊列,必須由該管理器執行。

您可以爲此隊列設置某種偵聽器,它會通知管理器,新的動作正在等待處理,因此您不需要實現定時器,或者不需要連續檢查隊列。

+0

但是,如果我將創建2個管理器:一個僅用於插入,另一個僅用於選擇:每個管理器都將獲得對同一數據庫的引用。它應該工作,如果一個線程會插入一些東西,另一個線程會從數據庫中獲取一些數據? – 2011-06-10 14:28:11

+0

可能適用於您的情況,但您應該對其進行測試。無論如何,這對我的口味來說是一種狡猾的手段。真的不知道android sqlite是如何工作的,但我確信可寫入的數據庫實例爲任何其他寫入訪問鎖定數據庫(可能適用於只讀)。我認爲有些問題可能會彈出,當可寫實例還沒有進行一些更改時,但可讀性嘗試讀取它們(因此,獲取舊版本,不是最新版本) 我說,只有在您真的需要這樣。 – 2011-06-10 14:44:36

相關問題