私は次の点で混乱しています:
Java プログラムでスレッドを使用するための最も簡単な方法は、Thread クラスを拡張し、実行可能なインターフェースを実装する (または単に実行可能なものを実装する) ことです。
スレッドの実行を開始します。スレッドのメソッド start() を呼び出す必要があります。これにより、スレッドのメソッド run() が呼び出されます。そして、スレッドが開始されます。
メソッド start() (私が間違っていない限り)は、スレッドごとに1 回だけ正確に呼び出す必要があります。その結果、スレッドの再利用のカスタム実装を容易にする無限ループの短い部分で run メソッド自体が何らかの方法で実行されない限り、スレッド インスタンスを再利用することはできません。
現在、javadoc
リンクテキスト
は
実行する呼び出しは、利用可能な場合、以前に構築されたスレッドを再利用します
これがどのように実装されているかわかりません。executor メソッドの execute メソッドで、カスタム スレッドを提供します。
ExecutorService myCachedPool = Executors.newCachedThreadPool();
myCachedPool.execute(new Runnable(){public void run(){
//do something time consuming
}});
エグゼキュータ フレームワークに委任したこのカスタム スレッドを再利用するにはどうすればよいですか?
Executor はメソッド start() を複数回呼び出すことができますが、プログラムではできませんか? 私は何か誤解していますか?
ありがとうございました。