Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Cambiar una variable desde dentro de un hilo

Estas en el tema de Cambiar una variable desde dentro de un hilo en el foro de C/C++ en Foros del Web. Buenas tengo un servidor escrito en C++ donde quiero que envie un mensaje a distintos clientes, el mensaje siempre sera igual lo unico que cambiara ...
  #1 (permalink)  
Antiguo 10/06/2016, 20:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Cambiar una variable desde dentro de un hilo

Buenas tengo un servidor escrito en C++ donde quiero que envie un mensaje a distintos clientes, el mensaje siempre sera igual lo unico que cambiara la ip. Es por eso que he pensado en crear un hilo en donde este constantemente a la escucha y almacenando los clientes en un array. Luego cuando el usuario asi lo requiera podra enviar el mensaje a todos los clientes que se hayan almacenado dentro del array. Mi problema es que no se como modificar ese array desde dentro del hilo. Alguien tiene alguna idea?!

  #2 (permalink)  
Antiguo 11/06/2016, 02:47
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
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.

Etiquetas: hilo, variable
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 15:07.