Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/03/2007, 00:06
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 8 meses
Puntos: 454
Re: duda sobre threads

Hola:

Necesitas o no threads dependiendo de si el puerto serie o el cliente pueden esperar. Si no usas threads, sólo puedes atender a uno a la vez, leer del puerto serio o enviar al cliente, por lo que sería atendidos por "turnos". Si esto es aceptable, no necesitas threads.

No conozco como se habla con un puerto serie, pero si es similar a sockets, cuando hagas read() de un puerto serie y no haya datos, la llamada se quedará ahí, a la espera. Si esto es así, cuando estes esperando datos del puerto serie, no atenderás clientes, puesto que estás bloqueado en el read(). Para evitarlo y no usar threads, deberías hacer algún tipo de "pregunta" al puerto serie de si tiene datos disponibles antes de leerlos. Esto en general no es eficiente. En vez de tener el proceso dormido mientras no tiene nada que hacer, lo tienes continuamente preguntando al puerto serie si hay datos.

Por ello, lo habitual suele ser tener dos hilos. Uno atiende el puerto serie y pone lo que lee en algún sitio accesible. Otro hilo atiende al cliente y le manda los datos.

Se bueno.
__________________
Apuntes Java
Wiki de Programación