Je viens d'implémenter une toute première jobqueue multithread simple en C++ et j'ai pensé (et lu) que c'est une bonne idée d'utiliser un thread de travail pour chaque thread matériel (dans mon cas ce serait 4). Fondamentalement, mon application charge juste beaucoup d'images (en même temps) de l'Internet en ce moment, et je remarque que je reçois une énorme accélération si j'augmente le nombre de threads de travail à 8 ou même 16 au lieu de 4.C++ Jobqueue: Y a-t-il une règle générale pour le nombre de threads de travail?
Existe-t-il une règle générale sur le nombre de threads à utiliser dans une telle file d'attente? Je devinerais que 4 serait un nombre plus grand si je créais de nouveaux emplois chaque cadre, et les threads de travail avaient une charge de travail constante à chaque image, tandis que si je veux traiter beaucoup de choses à la fois (comme le chargement de 50 images) plus de threads que cela peut donner une grande accélération. Pourtant, y a-t-il une règle empirique pour le bon numéro dans différents scénarios?
Merci
J'ai oublié de dire que je suis sur OSX (en utilisant boost :: thread), j'aime coder les choses moi-même à cet égard en raison de la portabilité. – moka