24/03/2007, 00:06
|
| Colaborador | | Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 3 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. |