Foros del Web » Programación para mayores de 30 ;) » Java »

Thread y PID

Estas en el tema de Thread y PID en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/04/2006, 07:42
 
Fecha de Ingreso: enero-2004
Mensajes: 144
Antigüedad: 20 años, 3 meses
Puntos: 0
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
  #2 (permalink)  
Antiguo 06/04/2006, 10:31
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
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...?
  #3 (permalink)  
Antiguo 06/04/2006, 10:45
 
Fecha de Ingreso: enero-2004
Mensajes: 144
Antigüedad: 20 años, 3 meses
Puntos: 0
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.
  #4 (permalink)  
Antiguo 06/04/2006, 12:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:57.