• [^] # Re: threads/process

    Posté par . En réponse à la dépêche Caudium v/s Apache. Évalué à 1.

    Je ne pense pas qu'il faille utiliser les threads pour simplifier la vie des programmeurs. D'ailleurs, ce n'est souvent qu'une façade. Debugger un programme multithread est un horreur. La maintenance n'est pas forcément aisée, et la validation de tels programmes est assez problématique.
    Utilisons les threads pour améliorer les performances.

    Le partage de donnée entre threads coûte cher en terme de synchronisation (prise de verrou, switch du contexte ...) et cela, contrairement à ce qui a été dit plus haut stresse pas mal la mémoire.

    La gestion des E/S bloquantes via des threads, est je pense, quand on commence à avoir un nombre conséquent de socket, une hérésie. J'imagine d'ailleurs que apache ne fait pas ce genre de chose.

    Sur linux les threads utilisent le modèle 1x1 ( http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html#K(...) ) et béneficient de la répartition de charge sur plusieurs μpro. Je crois d'ailleurs qu'il n'y a aucun moyen sur linux d'attacher un thread à un μpro ce qui peut être problématique.

    En plus, dans le cadre d'une utilisation en C++, on a eu de gros soucis avec les exceptions.

    Pis, les gourous unix, ben, ils aiment pas les threads. D'ailleurs, John Ousterhout a publié il y a quelques années un manifeste anti thread ( http://www.softpanorama.org/People/Ousterhout/Threads/tsld001.htm(...) ).

    Stéphane