Est un OutputStream en Java blocage? (Sockets)

Je suis en train d'écrire naïf code réseau pour un projet et un pote m'a laissé entendre à la possibilité que lorsque j'envoie un paquet d'informations à partir du serveur à tous les clients dans un mode itératif, je pourrais obtenir intense de latence lorsque l'un des clients n'est pas de répondre correctement.

Il est réputé pour la pêche à la traîne, donc j'étais un peu sceptique lors de l'exécution d'un thread secondaire qui est responsable aujourd'hui d'envoyer des données à un client, avoir une file d'attente que le Serveur ajoute simplement les paquets qui est ensuite lu par le fil pour envoyer des données.

La question, j'ai maintenant après réflexion, c'est le temps ou pas l'OutputStream de Java Prise en fait les files d'attente les trucs qu'il veut envoyer par lui-même, éliminant ainsi la nécessité d'une file d'attente à l'avance. La possibilité de disposer d'intenses problèmes atteint son apogée uniquement lorsque le Serveur est bloquante tant qu'il n'a pas obtenir une réponse à partir d'un client de l'objet envoyé a été reçu.

Grâce.

J'ai couru dans un problème similaire, si j'essaie d'obtenir de la sortie ou du flux d'entrée dans la fonction d'exécution d'un Thread. Le problème avec le blocage (pour les deux getInputStream, et getOutputStream) de la douille est parce que c'est dans la fonction d'exécution... la solution semble être de le mettre dans le constructeur, l'enregistrement de la variable, puis de référence de la variable dans la course.

OriginalL'auteur salbeira | 2012-05-13