11/06/2016, 02:47
|
| | Fecha de Ingreso: octubre-2014 Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses Puntos: 204 | |
Respuesta: Cambiar una variable desde dentro de un hilo No es conveniente crear un hilo por cliente salvo que sea para practicar. El motivo es que 1000 clientes implica 1000 hilos y un servidor tendrá 8-16 núcleos, luego los hilos van a estar compitiendo entre sí por el uso de la CPU y el rendimiento se resiente mucho (si el número de usuarios es pequeño puede ser justificable). Suele ser mejor opción crear los sockets como no bloqueantes en el lado del servidor. Se almacenan las conexiones en un vector y el servidor simplemente se dedica a recorrer dicho vector comprobando si algún cliente necesita algo.
Para entornos multihilo debes usar semáforos o mutex (mejor esto segundo) para evitar inconsistencias y condiciones de carrera al acceder a los recursos compartidos. Ahora, también te aviso que hay que ser muy cuidadoso al diseñar un entorno multihilo para evitar abrazos mortales y otros problemas asociados.
C++11 ya incorpora en el estándar la gestión de hilos. Echa un vistazo a la librería thread.
Un saludo
__________________ La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo. |