私のアクターの反応メソッドの 1 つで、次のようにしてスレッド プールを出力しました。
val scalaThreadSet = asScalaSet(Thread.getAllStackTraces().keySet());
scalaThreadSet.foreach(element => Console.println("Thread=" + element + ",state=" +
element.getState()))
たくさんのスレッドが表示されます:
Thread=Thread[ForkJoinPool-1-worker-6,5,main],state=WAITING
Thread=Thread[Signal Dispatcher,9,system],state=RUNNABLE
Thread=Thread[ForkJoinPool-1-worker-10,5,main],state=RUNNABLE
Thread=Thread[ForkJoinPool-1-worker-13,5,main],state=WAITING
Thread=Thread[ForkJoinPool-1-worker-7,5,main],state=WAITING
Thread=Thread[ForkJoinPool-1-worker-9,5,main],state=WAITING
Thread=Thread[ForkJoinPool-1-worker-14,5,main],state=WAITING
スレッド プールのサイズを 1 に減らし、スレッドを 1 つだけ表示したいので、次のように渡します。
だから私は渡します:
-Dactors.maxPoolSize=1
VM 引数として。
私の予想では、スレッドは 1 つしか表示されないはずですが、まだ負荷が表示されています。何か案は?