线程:从ArrayList中检索然后执行对象

时间:2012-11-07 01:08:36

标签: java multithreading

我正在使用线程,需要先从集合中检索一个对象,然后在该对象中执行该方法。我使用ArrayList.get(0)来检索第一个元素,但现在我如何为刚刚检索到的Runnable对象执行run()方法?

到目前为止,这是我的代码:

public class MyThread extends Thread{

//Instance Variables
private List<Runnable> requestQueue;

//Constructor
public MyThread() {
    requestQueue = new LinkedList<Runnable>();
}

//Methods
public void run() {
    while (!requestQueue.isEmpty()) { 
        try {
            wait();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        requestQueue.get(0);
    }
}

}

1 个答案:

答案 0 :(得分:2)

当您排队而非为空时,您可以运行:

new Thread(requestQueue.get(0)).start();

顺便说一句:你应该得到一个循环名称冲突,表明你无法扩展Thread。您可以将课程重命名为MyThread

另请参阅ExecutorService,以抽象出与原始线程等较低级别抽象相关的许多复杂性。