我正在编写一个使用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万次操作?
我希望这是有道理的,任何意见或建议将不胜感激。
感谢
乔希