Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¿cómo Utilizar Mejor El Api De Red?

Iniciado por gdl, 29 de Marzo de 2004, 12:55:59 PM

« anterior - próximo »

gdl

 
Hola, hola...

Que yo sepa hay tres formas de utilizar la red (y más o menos cualquier dispositivo de E/S).

- Síncrono: Cada vez que se quiera algo, hay que esperar a que finalice.
- Asíncrono: Cada vez que se quiera algo, se envía la instrucción y luego ya te responderán. Es el clásico funcionamiento por interrupciones.
- No bloqueante: Cada vez que se quiera algo, no esperamos a que finalice, pero tampoco te notifican el final. Es el típico "polling".

Teniendo en cuenta que esperar es realmente bloquear la hebra en la que estemos, mi pregunta es: ¿qué método es más adecuado cuando el número de conexiones es alto y todas tienen que ser atendidas?

Es el típico caso de un servidor para un juego MMORPG. Tengo, digamos, mil jugadores simultáneos (clientes). Hay que atenderlos a todos, pero si uso un método síncrono necesito una hebra para cada cliente (y muchos SO no aguantan mil hebras, o si lo aguantan, les duele). El método asíncrono no está disponible en todos los API (o quizás sí, la verdad es que tampoco me he empollado tan fondo los sockets, TLIs y otras hierbas). El método no bloqueante es ineficiente, por eso del polling (preguntar cada dos por tres si algo ha llegado).

Como veis, vayamos por donde vayamos, baches nos encontramos.

¿Alguna idea esperanzadora para este alma atormentada? (nooo)  






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.