2009-09-14 6 views
0

Le Java NIO Socket Framework cache prétendument les détails sales des E/S non bloquantes des développeurs, leur permettant de construire des applications hautement évolutives, capables de gérer plus de 10000 sockets entrants et sortants en utilisant un seul thread.Les E/S non bloquantes sont-elles toujours un problème avec Java côté serveur?

  • Est-ce que les E/S non bloquantes posent toujours problème avec la version standard de Java 2 SE/EE?

  • Ce cadre est-il toujours nécessaire et utile?

Merci pour votre temps.

+0

Les deux ont leurs utilisations, NIO ajoute plus de complexité. Que voulez-vous faire avec un serveur socket? –

Répondre

3

Eh bien, NIO crée une abstraction sur certains détails, certainement. Les IO non bloquantes sont encore une source de douleur (au moins, je le trouve) mais au moins c'est faisable. (Personnellement, je préfère le style .NET de IO asynchrone, mais c'est une autre affaire.)

Je habituellement utiliser le blocage IO: pour la plupart des tâches, cela est tout ce que je requiers et je ne gagneraient pas de manière significative en utilisant non IO bloquant. Dans certains cas (comme celui que vous avez mentionné), les E/S non bloquantes sont vraiment la seule façon d'avancer si vous voulez garder votre thread à zéro. Je recommande que vous appreniez à ce sujet, jouez avec, puis utilisez votre jugement pour décider quand l'utiliser dans le code de production. Je ne suggère pas de commencer à l'utiliser partout ...

1

Oui, NIO est très utile. NIO est aussi un peu difficile à travailler. En fonction de vos besoins, vous pouvez envisager d'utiliser des frameworks qui enveloppent NIO, comme grizzly ou mina. Grizzly est la partie réseau de glassfish appserver de sun Oracle. Mina est un framework d'application réseau d'Apache.org.

Personnellement, je préfère grizzly mais c'est juste moi.

Questions connexes