Hola,
una consulta "fácil", pero que no he encontrado
Tengo un servlet que en su código crea una hebra y necesito obtener el pid de esa hebra. Existe algún método para eso?
Gracias
| |||
Thread y PID Hola, una consulta "fácil", pero que no he encontrado Tengo un servlet que en su código crea una hebra y necesito obtener el pid de esa hebra. Existe algún método para eso? Gracias |
| |||
El PID es una cuestion de sistema operativo y como tal, desde Java no se puede obtener. Además, en muchos casos un Thread no tiene un PID propio, asi que no te serviría de mucho. >Tendras que buscar otra manera. ¿Lo necesitas para...? |
| |||
Te explico. Subimos un proyecto ear con un servlet inicial que activa una hebra que se ejecuta cada x minutos buscando referencias de ese proyecto y está seteado con setDeamon(true) por X motivo. A bajar este proyecto y subir uno nuevo, esta hebra sigue activa y al buscar referencias a su proyecto, nos da error ya que no existe. Solución rápida: Si tenemos el pid (que debe tener ya que queda independiente del proyecto) podemos hacer un kill. |
| |||
En estos casos lo mejor es guardar una referencia al Thread desde un objeto colocado en el contexto y usar el destroy de un servlet o un ServletContextListener o ServletContextAttributeListener para marcar al Thread que se ha de parar. Como te he dicho, muchas veces un Thread no tiene un PID propio asi que si le hicieras un kill -9, estarias matando toda la maquina virtual, o sea -> El servidor de aplicaciones. Supongo que no querras eso Para más info: http://java.sun.com/j2ee/1.4/docs/tu...Servlets4.html |