在多个线程中呈现分形时显示进度

时间:2014-12-09 17:33:29

标签: java multithreading swing progress-bar

您好,

我目前正在编写一个分形浏览器/生成器,我一直在实施进度条。目前我有一个抽象类Renderer,它继承了一个渲染方法public abstract long render(int[] pixels, int w, int h);。此方法返回迭代次数。

Renderer类的示例为BuddhaRenderer,此处摘录自render()的{​​{1}}方法:

BuddhaRenderer

这将启动多个线程,将其结果写入int[] numHits = new int[w * h]; ArrayList<BuddhaThread> threads = new ArrayList<BuddhaThread>(); for (int i = 0; i < controller.processors; i ++) { BuddhaThread th = new BuddhaThread(controller, w, h, numHits, anti); th.start(); threads.add(th); } try { for(Thread th : threads) th.join(); } catch (InterruptedException e) { e.printStackTrace(); } 。我正在等待所有线程完成,然后在为所有线程运行numHits方法时继续绘制图像。

现在,如果没有进度条冻结,我将如何在同一个JFrame内或不同的JFrame内显示所有这些线程的进度条?

可以可靠地读取这些进展,因为它们只是迭代了一定数量的随机点。

这是我第一次使用线程,所以请随时纠正我如果我做的事情非常糟糕。

0 个答案:

没有答案