• Jueves 16 de Mayo de 2024, 23:52

Autor Tema:  Problema con Hilo  (Leído 1447 veces)

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Problema con Hilo
« en: Lunes 6 de Octubre de 2008, 18:02 »
0
Hola...

Tengo un programa que es un hilo. El método run contiene un ciclo infinito en el cual se hacen ciertas cosas, el problema es q cuando lo inicio se consume el 100% del uso de cpu. Ya probé comentando todo dentro del while y sigue igual...

Agradecería su ayuda...

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Problema con Hilo
« Respuesta #1 en: Lunes 6 de Octubre de 2008, 23:09 »
0
hola

una razon pues ser que estas llamando a una funcion que hace un new o algo asi, de pronto tal vez llamas a una funcion que requiere muchos recursos.
podrias poner el codigo?

saludos

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Re: Problema con Hilo
« Respuesta #2 en: Martes 7 de Octubre de 2008, 14:58 »
0
Hola...

Te explico lo q hace la aplicación (Netbeans), el programa debe estar siempre corriendo y revisando en un directorio la existencia de un archivo, cada vez q encuentre algo, se conecta a un servidor donde tengo otra aplicación(JBuilder), realiza una consulta y con el resultado manda a ejecutar otra aplicación (NetBeans).

en el main: frmprincipal.GetInstance().setVisible(true); es una pantalla q tiene dos botones:Iniciar y Detener... Al hacer click en Iniciar -> hilo.start().

en el metodo run:
 while (true) {
   LeerArchivo a=new LeerArchivo();
   encontrado=a.isEncontrado();
   if (encontrado) {
    valor = a.getValor();
    pos = valor.indexOf(".");
    if (pos > 0) {
      Long id_odt = new Long(valor.substring(0, pos));
      try {
       Conexion con1 = new Conexion();
       Context c = con1.Conectar(ServidorProcesosProp.INITIAL_CONTEXT_FACTORY_VALUE, ServidorProcesosProp.URL_PKG_PREFIXES_VALUE);
       Object result1 = c.lookup("ManejarCubo");
       ManejarCuboHome home1 = (ManejarCuboHome) javax.rmi.PortableRemoteObject.narrow(result1, ManejarCuboHome.class);
       ManejarCubo accionesCubo = home1.create();
      CuboOdtData odt = accionesCubo.consultarOdtCubo(id_odt);
      param = odt.getC_ruta_exe() + " " + odt.getId_odt().toString();
      con1.Desconectar(c);
    }
   catch (NamingException ex) {
      LOG.addAppender(appender);
      LOG.error("ServidorProceso: " + ObtenerFecha.ObtenerFechaHoraDelSistemaATimestamp().toString() + " " + ex.getMessage());
    }
    try {
       Runtime obj = Runtime.getRuntime();
       Process proc = obj.exec(param);
     }
     catch (Exception e) {
        LOG.addAppender(appender);
        LOG.error("ServidorProceso: " + ObtenerFecha.ObtenerFechaHoraDelSistemaATimestamp().toString() + " " + e.getMessage());
     }
     BorrarArchivo b=new BorrarArchivo(valor);
     valor = "";
  }
System.out.print("Hilo ejecutandose");
 }
}

el punto es q a pesar de no encontrar ningun archivo se consume el 100% del uso del cpu...

Gracias de antemano....

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Problema con Hilo
« Respuesta #3 en: Viernes 10 de Octubre de 2008, 07:07 »
0
hola

intenta dormir el hilo por unos segundos luego antes de llamar al metodo desconectar.

saludos