Je suis en train de mettre en œuvre un pool de travailleurs en Java.
C'est essentiellement un ensemble complet d'objets qui vont récupérer des morceaux de données, traiter les données, puis stocker le résultat. En raison de la latence des entrées/sorties, il y aura significativement plus de travailleurs que de cœurs de processeur.
Le serveur est dédié à cette tâche et je veux tirer le meilleur parti des performances du matériel (mais non, je ne veux pas l'implémenter en C++).
La mise en œuvre la plus simple consisterait à avoir un seul processus Java qui crée et surveille un certain nombre de threads travailleurs. Une alternative serait d'exécuter un processus Java pour chaque travailleur.
En supposant à titre d'exemple un serveur Linux quadcore, lequel de ces solutions anticiperiez-vous être plus performant et pourquoi ?
Vous pouvez supposer que les travailleurs n'ont jamais besoin de communiquer les uns avec les autres.