Вопрос

Есть ли способ отслеживать, сколько потоков на самом деле активно и работают мои актеры Scala?

Это было полезно?

Решение

Единственный способ сделать это правильно — внедрить свой собственный исполнитель для подсистемы актеров, поскольку по умолчанию потоки актеров не имеют имен, специфичных для актеров или scala (их можно просто называть Thread-N или pool-N-thread-M в зависимости от того, какую версию Scala вы используете.

Филип Халлер дал указания об использовании собственного исполнителя, где вы можете отслеживать использование потоков, если хотите, или, по крайней мере, называть созданные таким образом потоки.Если вы переопределите именование потоков, вы сможете использовать стандартные MBean-компоненты системы Java (т. ThreadMXBean) для программного мониторинга потоков (или через JConsole/JVisualVM).

Обратите внимание, что вы можете контроль механизм по умолчанию, использующий свойства системы:

  • actors.minPoolSize
  • actors.maxPoolSize
  • actors.corePoolSize

Другие советы

Вы можете попробовать VisualVM инструмент (доступен бесплатно от Sun). Помимо прочего, он может отслеживать потоки в запущенных JVM.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top