我正在編寫一個使用Java的彩虹表生成器,現在已經到了實現多線程的時間來提高整個流程的速度。Java可運行的大量任務彩虹表
到目前爲止,我有一個GUI,它調用一個SwingWorker類來處理表格構造和數據填充。
內的SwingWorker是一個Runnable:
private final Runnable populateTable = new Runnable() { //Generate & write to file};
爲了調用populateTable我實現了包含4個線程做的產生和寫入磁盤FixedThreadPool一個ExecutorService的run()方法也是同步的:
ExecutorService executor = Executors.newFixedThreadPool(4);
這是我變得有點困惑的地方,並且在多線程時表現出我的無知。
每個populateTable run()在最後寫入文件之前執行2000次操作。
populateTable需要運行40,000,000,以便生成足夠大的彩虹表供我使用。
運行2000次操作的最佳(當然是有效的)方法是什麼?使用四個線程執行4000萬次操作?
我希望這是有道理的,任何意見或建議將不勝感激。
感謝
喬希