如何循环线程

时间:2011-10-09 02:18:21

标签: java multithreading

我知道在java中你可以创建一个数组或列表(老实说,我忘了哪一个)你可以存储一系列类。我希望能够拥有一个包含其中一个列表的程序,并将遍历每个类并在每个类中运行某个方法(是的,所有类都扩展了一个抽象类)。这可能吗?如果我没有好好描述我的问题,如果有人发表评论并说我需要更好地描述它,我会非常抱歉。

2 个答案:

答案 0 :(得分:2)

(在这里调整StriplingWarrior的示例类名以显示如何线程化)

要在线程中运行,您的类需要implement Runnable,即包含方法public void run(),因此:

public abstract class Foo implements Runnable {
    public void run() {
       bar();
    }
    public void bar();  // the method that'll be overridden
}

然后,对于列表中的每个元素:

List<Foo> foos;
for (Foo foo : foos) {
    new Thread(foo).start();
}

答案 1 :(得分:0)

使用ThreadPoolExeuctor并将其提供给BlockingQueue&lt;可运行&GT;