有很多數據處理我試圖讓他們平行。數據庫多線程與主鍵保留序列更新
class Item{
Integer id;
String data;
}
ExecutorService executor = Executors.newFixedThreadPool(10);
for (Item item : items) {
executor.execute(() -> putItemToDB(item));
}
但出現的問題是,在一個測試的情況下,我有第一6個任務相同的主鍵。具有相同主鍵(id)的任務順序很重要,不能更改。目前,我沒有保證。
例子:
items = [{id: 1, data: "a"}, {id: 1, data: "b"}, {id: 2, data: "g"}]
我必須知道a
是以前b
,並運行在線程池的所有任務都不能保證。有可能,a
將覆蓋b
。
有沒有什麼好的設計模式可以解決這個問題?
發現目前還不清楚你在問什麼,因爲沒有什麼在這段代碼中揭示了什麼*「的任務具有相同主鍵的順序」 *其實意味着。 –
我已經改進了我的問題。我希望現在可以。 –