1
それで、クラスCustomClassを返すイテレータがあるとしましょう。イテレータには、多くのCustomClassがあります。さらに、ユーザーが自分のプログラムで5つのスレッドしか自分のプログラムでいつでも実行できると判断するようなものを入力したとしましょう。ように イテレータのスレッドを制限したり、スレッドを再利用したりしますか?
は、このような何かが起こることが予想されます。for(int i = 0; i < 5 && it.hasNext(); i++) {
new Thread(it.next()).start();
}
今、再び5件のみが許可されているとイテレータでより多くの要素があります。しかし、1つのスレッドがrun()で終了した後、it.next()を呼び出して新しいスレッドを作成します。しかし、このスレッドでは定義されていないという問題があります。 CustomClassには、どんな種類のnext()メソッドもありません。どのようにして各スレッドがイテレータに効率的にアクセスできるようにするのですか?
複数のことを同時に実行したくない場合は、スレッドを使用しないでください。 – SLaks
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html –
複数のことを同時に実行したくないというわけではありません。私はそれをしたいが限界がある。 たとえば、イテレータのオブジェクトがURLをロードするメソッドを実行し、そのURLからイメージをロードしてそのオブジェクトを処理するとします。何人かの人が(より多くの人ではないにしても)弱いつながりを持っているのを見ると、一度に5ページ+画像を同時にロードするだけで、20人ではなく、干渉しないでYouTubeのビデオを見ることができます。 – Apothem