¿Hay alguna manera de averiguar qué procesador (ya sea en un solo sistema o en varios sistemas) está ejecutando su subproceso, utilizando subprocesos nativos de Java? Si no, ¿hay alguna biblioteca que pueda ayudar?¿Se está ejecutando el hilo Java en qué procesador?
Respuesta
Nunca he oído hablar de tal llamada, y dudo mucho que exista, ya que no es realmente necesario, y requeriría un código adicional específico de la plataforma.
El programador de hilos de la JVM es específico de JVM, por lo que no hay una solución 'universal'. Por lo que yo sé, no hay nada disponible listo para usar, pero quizás usando:
- Sun JVM;
- Solaris - o Mac, como Tom Hawtin - tachado señala;
- DTrace.
es posible que tenga un poco de suerte:
- traza una sonda
thread-start
, que tiene comoargs[3]
el "El nativo/OS hilo ID Este es el ID asignado por el sistema operativo anfitrión." - mapee la ID del hilo nativo/SO a una CPU, utilizando utilidades específicas de Solaris.
dtrace también está disponible en Mac OS X (lástima que el JRE esté detrás de los tiempos). –
Gracias, publicación actualizada. –
Por lo que sé, el JDK estándar no es compatible (al menos hasta JDK 6). Si eso es lo que realmente necesita, probablemente necesite ejecutar algunas llamadas nativas usando JNI. Un buen ejemplo se puede encontrar en here (aunque no es exactamente lo que necesita, creo que es un buen comienzo).
Hay mucha otra información que puede obtener del JDK, por cierto, utilizando la clase ThreadMXBean (como el uso de CPU por hilo), y tal vez pueda encontrar lo que está buscando there.
Wrong layer of abstraction.
Su programa debería preocuparse por dividir el trabajo que necesita hacer en hilos y enviarlos a la JVM para su programación. Cómo programa (la JVM, o el sistema operativo subyacente, o quien corresponda) los horarios y la CPU/núcleo en que termina su ejecución no debe ser un factor en el diseño del programa, al menos para un programa escrito para/en un entorno como Java.
El sistema operativo programará subprocesos en diferentes procesadores en diferentes momentos. Entonces, incluso si obtiene una instantánea de dónde se está ejecutando cada hilo en un momento dado, podría estar desactualizado en milisegundos.
¿Cuál es el problema que está tratando de resolver? Quizás pueda hacer lo que quiera sin tener que saber esto.
- 1. ¿Cómo verifica qué hilo está ejecutando el código en Java?
- 2. ¿Cómo puede encontrar el número de procesador en el que se está ejecutando un subproceso?
- 3. ¿Qué versión de Java se está ejecutando en Eclipse?
- 4. ¿Qué iniciador se está ejecutando?
- 5. apropiante un hilo que se está ejecutando sincronizado método
- 6. ¿Qué hilo Java está acaparando la CPU?
- 7. java: está interrumpiendo el hilo absolutamente necesario
- 8. Averigüe qué JVM Eclipse se está ejecutando en
- 9. Eclipse está ejecutando el archivo Java incorrecto
- 10. ¿Cómo comprobar si se está ejecutando en el hilo de UI en Android?
- 11. ¿Cómo saber qué hilo está bloqueando un archivo en Java?
- 12. Terminar un hilo que está ejecutando un código nativo
- 13. Finalmente el bloque no se está ejecutando?
- 14. En Java, ¿cómo se determina si se está ejecutando un subproceso?
- 15. En Java, si un hilo se mata, ¿qué pasará con el otro hilo?
- 16. Cómo crear un hilo que corre todo el tiempo que mi aplicación se está ejecutando
- 17. Comprobar si el proceso se está ejecutando
- 18. Periodictask no se está ejecutando
- 19. applicationDidFinishLaunching no se está ejecutando
- 20. Métodos Java Ejecutando en hilos
- 21. Identificar el procesador (núcleo) es utilizado por un hilo específico
- 22. ¿Se está ejecutando una operación larga en javascript?
- 23. ¿Qué sucede con un hilo de trabajador web HTML5 cuando la pestaña se cierra mientras se está ejecutando?
- 24. ¿Google gson se está ejecutando en android?
- 25. ¿Se está ejecutando un subproceso en iOS?
- 26. Scala SBT: scala.tools.nsc no se está ejecutando
- 27. encuentre qué tipo de recolector de basura se está ejecutando
- 28. Diciendo qué proyecto de ruby on rails se está ejecutando
- 29. cómo ver qué código javascript se está ejecutando actualmente?
- 30. ¿Qué sucederá cuando edite un script mientras se está ejecutando?
Gracias a todos por sus respuestas. Entiendo que lo que más me preocupa es el uso de la CPU de los hilos. Esta fue solo una pregunta que hice por curiosidad :) –