You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hola! Fuera del tema de la tarea, estaba tratando de entender cómo funcionarían los locks de los threads en un servidor real, con muchísimas conexiones en paralelo. Si tuviera, digamos, 10.000 conectados, hacer un lock cada vez que alguien se conecta me imagino que volvería todo el sistema muy lento. Hay alguna otra manera de abordar el problema? En internet no encontré mucho que hablara del tema. Muchas gracias!
The text was updated successfully, but these errors were encountered:
En primer lugar te recomiendo leer este artículo que en general explica locks mucho mejor de lo cual yo voy a poder hacer en este breve texto.
La respuesta a tu pregunta es, uno tiende a usar locks lo menos posible y solo en las secciones críticas. Por ejemplo, aceptar una nueva conexión no es una sección crítica. Si después de aceptar una conexión tienes que modificar un recurso compartido, entonces sí. En general los locks solo deben ser usados en pequeñas secciones de lógica que podría resultar erronea si fuera realizada por múltiples threads a la vez.
Gracias por la info! Le daré una lectura :)
Al final el problema también sería de alguna manera optimizar el lock en sí para que sólo use la sección crítica y nada más?
Exactamente. Uno no usa muchos Locks y tampoco los usa por muchas lineas. Por ejemplo, no vas a tener 15 locks cada uno sobre procesos de 200 líneas cada uno, solo se usa para las acciones atómicas importantes.
En todo caso, a menos que estés haciendo una aplicación a muy bajo nivel, o busques tener completo control sobre el estado de un servidor, es raro que uno maneje locks de un servidor a gran escala a mano. El caso realista es que utilizas un servicio que ya tiene implementada esa lógica.
Hola! Fuera del tema de la tarea, estaba tratando de entender cómo funcionarían los locks de los threads en un servidor real, con muchísimas conexiones en paralelo. Si tuviera, digamos, 10.000 conectados, hacer un lock cada vez que alguien se conecta me imagino que volvería todo el sistema muy lento. Hay alguna otra manera de abordar el problema? En internet no encontré mucho que hablara del tema. Muchas gracias!
The text was updated successfully, but these errors were encountered: