在junit下, 很難對多執行緒的**進行測試, 因此需要借助其他的方式, 比如executor service框架. 最近要對乙個監控類的輸出情況寫乙個測試, 簡單的跑一下輸出格式是否跟預期一致.我這裡借助了threadpoolexecutor+completionservice. 即在結束前, 需要從執行緒池中拿到最後的執行結果. 我覺得多執行緒測試模式都應該是類似的, 備忘一下
public class monitorhelpertest
return true;
}private void dofoo(int i, action action) catch (exception e) }}
@before
public void before()
});completionpool = new executorcompletionservice(pool);
futures = new arraylist>(count);
workers = new worker[count];
for (int i = 0; i < count; i++)
}@test
public void test() throws exception
for (int i = 0; i < count; i++)
}/**
* @throws exception
* */
private static void foo(int i) throws exception else
}}
演算法 多執行緒對List進行操作
多個執行緒對list操作,每個執行緒處理list中的每一段資料 比如,執行緒1處理0 100的資料,執行緒2處理100 200的資料 class a 主線程將list切分交給每乙個執行緒處理 liststrings1 schelist.sublist j,k int finalk k threads...
JUnit測試多執行緒
單元測試是不支援多執行緒的,主線程結束之後,不管子執行緒有沒有結束,都會強制退出。但是我們可以通過控制主線程結束的時間來做多執行緒測試.在junit的 test方法中啟用多執行緒,新啟動的執行緒會隨著 test主線程的死亡而死亡!導致沒有任何輸出 解決方法 在 test方法中每建立乙個執行緒,就jo...
Junit 多執行緒測試
junit不能用來做多執行緒測試,因為junit不支援多執行緒。junit的testrunner的main方法原始碼 public static void main string args system.exit success exit catch exception e 從原始碼可以看出來,ju...