有没有办法监控实际存在多少个线程并运行我的scala actor?
答案 0 :(得分:5)
正确执行此操作的唯一方法是为actors子系统注入自己的 executor ,因为默认情况下,actor线程没有特定于actor或scala的名称(它们可能只是名为Thread-N
或pool-N-thread-M
,具体取决于您使用的Scala版本。
Philip Haller has given instructions使用您自己的执行程序,您可以根据需要监视线程使用情况,或者至少命名如此创建的线程。如果覆盖线程命名,则可以使用标准Java系统MBean(即ThreadMXBean)以编程方式(或通过JConsole / JVisualVM)监视线程。
请注意,您可以使用系统属性控制默认机制:
actors.minPoolSize
actors.maxPoolSize
actors.corePoolSize
答案 1 :(得分:3)
您可以尝试VisualVM工具(可从Sun免费获得)。除此之外,它还可以监视正在运行的JVM中的线程。