diff --git a/src/test/java/top/guoziyang/mydb/backend/dm/DataManagerTest.java b/src/test/java/top/guoziyang/mydb/backend/dm/DataManagerTest.java index 141a94f..6de46ae 100644 --- a/src/test/java/top/guoziyang/mydb/backend/dm/DataManagerTest.java +++ b/src/test/java/top/guoziyang/mydb/backend/dm/DataManagerTest.java @@ -56,14 +56,19 @@ private void worker(DataManager dm0, DataManager dm1, int tasksNum, int insertRa uids1.add(u1); uidsLock.unlock(); } else { + long u0, u1; uidsLock.lock(); - if(uids0.size() == 0) { + try { + if (uids0.size() == 0) { + continue; + } + int tmp = Math.abs(random.nextInt()) % uids0.size(); + u0 = uids0.get(tmp); + u1 = uids1.get(tmp); + } finally { uidsLock.unlock(); - continue; } - int tmp = Math.abs(random.nextInt()) % uids0.size(); - long u0 = uids0.get(tmp); - long u1 = uids1.get(tmp); + DataItem data0 = null, data1 = null; try { data0 = dm0.read(u0); @@ -124,6 +129,8 @@ public void testDMMulti() throws InterruptedException { for(int i = 0; i < 10; i ++) { Runnable r = () -> worker(dm0, mdm, tasksNum, 50, cdl); new Thread(r).run(); + // 真正的多线程 + // new Thread(r).start(); } cdl.await(); dm0.close(); mdm.close();