私は20のスレッドを生成しています(すべて同時に実行されているはずです)。しかし、 これらはすべて同時に作成され、同時にすべてのプログラムが実行されるため、プログラム全体に大きな遅延が生じます(これは遅れていて、コンピュータが遅くない)。Javaでスレッドの生成を遅くするにはどうしたらいいですか?
だから私はそれらを異なる時間に作成したいと考えています。 2秒ごとに1つずつ生成する。これはどうすればいいですか?私は大量のものを使用しようとしましたが、どれもそれが望む方法では動作しません。私はブール値のメソッドを使用して、それが真になるまで再びループしないようにしようとしましたが、これはうまくいかないようです。何か案は?
for (int i = 0; i < 20; i++) {
Rain r = new Rain();
r.start();
}
MacBook Proに1000秒間のスレッドを1秒で作成できます。あなたは遅れによって何を意味しているのか、なぜスレッド作成に誤りがあると思うのかをもう少し説明できますか? – Gray
あなたはスレッドの優先順位を乱しているのですか、スレッド自体にたくさんのメモリを使用していますか?スレッド間の競合が多い場合を除いて、20スレッドは何の問題もないはずです... –
20スレッド、または150スレッドは、目に見えないほどの時間がかかります。スレッドの中に何か他のことが起こっている場合は遅延が増えますが、 '遅れ'の妥当な解決策は低優先度のスレッドを1つ作成して低優先度で20/150の他のスレッドを作成することです。スレッド構築ループの中でSleep(2000)の必要性を見たことはありません。 –