1

私はスレッドで作業しており、最初にコレクションからオブジェクトを取得してから、そのオブジェクトでメソッドを実行する必要があります。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);
    }
}

}

4

1 に答える 1

2

キューが空でない間は、次を実行できます。

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

ところで:拡張できないことを示す循環的な名前の競合が発生するはずですThread。クラスの名前を、たとえばに変更できますMyThread

また、生のスレッドのような低レベルの抽象化に関連する複雑さの多くを抽象化する手段として、ExecutorServiceを見てください。

于 2012-11-07T01:14:42.043 に答える