JAVAのスレッドで現在のスレッド数をカウントし
最大スレッド数を超えた場合は無視したいのですが
どのような実装を行えば良いでしょうか。
以下の実装だと3スレッドまでというのは満たしていますが
スレッドが終わっても配列に保持しているため、次のスレッドが実行されません。
class ThreadSample extends Thread { public static void main(String[] args) { ThreadSample[] th = new ThreadSample[3]; for (int i = 0; i < 10000; i++) { for (int n = 0; n < th.length; n++) { if (th[n] == null) { ThreadSample t = new ThreadSample(); th[n] = t; // スレッドが動いている間はインスタンスを配列に設定したい(参照を持てれば何でもよい) t.start(); // 最大スレッド数は3としたい } } } } public void run() { System.out.println(Thread.currentThread().getId()); } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/15 12:17