Je me prépare à écrire une application réseau multithread. En ce moment, je me demande quel est le meilleur modèle de fil pour mon programme. L'application entière peut gérer jusqu'à 1000 descripteurs (fichiers locaux, connexions réseau sur divers protocoles et descripteurs supplémentaires pour la gestion des temporisateurs et des signaux). L'application sera optimisée pour Linux. Programme fonctionnera sur les ordinateurs personnels réguliers, donc je suppose, qu'ils auront au moins Pentium 4.Conception d'une application multithread (recherche de modèles de conception)
Voici mon idée actuelle:
- Un thread gérer le réseau d'E/S à l'aide epoll.
- fil deuxième sera gérer E/S comme local (E/S disque, minuteries, traitement du signal) en utilisant epoll
- troisième fil se chargera de l'interface utilisateur (CLI, GTK + ou Qt)
La gestion de chaque connexion réseau dans un thread séparé élimine le processeur en raison d'un trop grand nombre de commutateurs de contexte.
Peut-être qu'il y a une meilleure façon de faire cela?
Connaissez-vous des documents/livres sur la conception d'applications multireades? Je cherche des réponses sur des questions comme: Quel est le nombre rationnel de threads? etc.