わかりました、タイトルの言葉遣いは少し奇妙ですが、私はそれを表現する方法を本当に知りませんでした. 基本的に、Java とスレッドについて私が理解していることは、スレッドを作成し、実行し、終了するということです。ただし、スレッド OBJECT はまだ存在します。このようなことが有効かどうか知りたいこと
int numWorkers = Integer.parseInt(args[0]);
int threadPoolSize = Integer.parseInt(args[1]);
ExecutorService tpes = Executors.newFixedThreadPool(threadPoolSize);
WorkerThread[] workers = new WorkerThread[numWorkers];
while(some condition)
for (int i = 0; i < numWorkers; i++) {
workers[i] = new WorkerThread(i, *some changing parameters*);
tpes.execute(workers[i]);
}
基本的に、この状況とは、いつ満たされるかわからない条件があるということです。私が8つのスレッドを使用しているとしましょう。私は 8 つのスレッドすべてを作成します。私は彼らの結果をまとめ、まだ終わっていないことに気づきました。ただし、たとえば、workers[0] は既に存在します。新しい WorkerThread() 呼び出しで作成しました。しかし、実行が完了したため、現在は死んでいます。再び呼び出す場合、worker[0] = new WorkerThread(0, new parameter )...それは許可されますか? もっと多くのスレッドが必要です。すでに (現在) デッド スレッドの配列があります...別のスレッドを指すようにできますか? 古いスレッドは GC によって適切に収集されますか?