Domanda

C'è un modo per monitorare quanti thread sono effettivamente attivi e in esecuzione i miei attori scala?

È stato utile?

Soluzione

L'unico modo per farlo correttamente è iniettare il proprio esecutore per il sottosistema attori poiché, per impostazione predefinita, i thread degli attori non hanno nomi specifici dell'attore o della scala (potrebbero essere chiamato Thread-N o pool-N-thread-M a seconda della versione di Scala in uso.

Philip Haller ha dato istruzioni sull'uso del tuo esecutore, dove è possibile monitorare l'utilizzo del thread se lo si desidera, o almeno nominare i thread così creati. Se si sovrascrive la denominazione dei thread, è possibile utilizzare gli MBean di sistema Java standard (ovvero ThreadMXBean ) per monitorare i thread in modo programmatico (o tramite JConsole / JVisualVM).

Nota che puoi controllare il meccanismo predefinito usando le proprietà di sistema:

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

Altri suggerimenti

Potresti provare VisualVM strumento (disponibile gratuitamente da Sun). Tra le altre cose, può monitorare i thread nell'esecuzione di JVM.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top