2009-05-23 7 views

Répondre

1

Pourquoi utiliser tant de fils, si vous faites tout ce que plus facilement avec un sélecteur et un seul fil? Si vous voulez une approche multithread pour les E/S réseau, vous devez prendre en compte les anciennes sockets de blocage. BTW, vous pouvez faire tout cela avec 3 sélecteurs: un accepte les connexions, un lit et un écrit. Lorsque vous acceptez une connexion, vous pouvez ensuite enregistrer la chaîne avec les deux autres sélecteurs, avec les opérations d'intérêt appropriées.

Bien sûr, lorsque vous devez libérer le canal, vous devez annuler le SelectionKey des deux sélecteurs (lecture et écriture) ou le fermer.

0

Je vous suggère de jeter un oeil à l'exemple de code qui est le sous échantillon JDK/nio/serveur

0

Je vous recommande Apache Mina: très flexible, abstraction de haut niveau, de haute performance, etc.

Questions connexes