gpt4 book ai didi

Java Runnable 具有大量任务 Rainbow Table

转载 作者:行者123 更新时间:2023-12-02 07:58:13 25 4
gpt4 key购买 nike

我正在用 Java 编写 Rainbow Table 生成器,现在是时候实现多线程来提高整个过程的速度了。

到目前为止,我有一个 GUI,它调用 SwingWorker 类来处理表构建和数据填充。

SwingWorker 内是一个 Runnable:

private final Runnable populateTable = new Runnable() { //Generate & write to file};

为了调用 populateTable,我实现了一个带有固定线程池的 ExecutorService,该线程池由四个线程组成,用于生成和写入磁盘,run() 方法也是同步的:

ExecutorService executor = Executors.newFixedThreadPool(4);

这就是我变得有些困惑的地方,并且显示出我对多线程的无知。

每个 populateTable run() 都会执行 2000 次操作,然后最终将某些内容写入文件。

populateTable 需要运行 40,000,000 次才能生成足够大的彩虹表供我使用。

使用四个线程运行 2000 次操作、4000 万次的最佳(当然也是高效)方式是什么?

我希望这是有道理的,任何建议或评论将不胜感激。

谢谢

乔什

最佳答案

在线程池上执行 4000 万次某些操作不太可能高效。相反,将工作分为 4 个部分并执行 4 个可运行程序,每个可运行程序计算该部分并以适当的批处理刷新结果。

关于Java Runnable 具有大量任务 Rainbow Table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com