Avec un mono processeur non hyperthreading, tu ne gagneras que grace au déroulement d'un thread pendant que l'autre attends une réponse ou un signal. Le reste du temps, t'en perdras vu que le processeur doit recharger un certain nombres d'infos pour reprendre l'exécution de l'autre thread. Si le processeur est mal conçu, il devra également vider tous ces pipes. (comme quand il c'est planté dans ses prédictions) Si l'os est mal conçu, le passage d'un thread à un autre prendra également du temps.
Bref, avec un mono-processeur, si le processeur et l'OS sont bien conçu et si le programme a tendance à perdre "un peu" de temps en attente, tu y gagneras. Si le programme n'attend jamais, t'en perdras quasiment toujours sur un mono processeur non hyperthreading. Si le programme attend énormément (genre éditeur de texte), ce que tu gagneras sera tellement négligable par rapport aux besoins que c'est pas la peine de se faire chier.
Par contre, avec un multiprocesseur ou un processeur hyperthreading, a par si tous les thread passent leur temps à attendre des réponses ou des signaux, alors là oui, t'y gagneras quasiment tout le temps.
Message édité par omega2 le 01-11-2005 à 11:26:35