對多執行緒進行測試

2021-08-25 23:24:34 字數 799 閱讀 8218

在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...