[PHP5] MULTI-THREADING : ACCÉLÉRATION DU TEMPS DE TRAVAIL D'UN SCRIPT.

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 26 janv. 2009 à 08:26
 Utilisateur anonyme - 12 janv. 2010 à 11:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49077-php5-multi-threading-acceleration-du-temps-de-travail-d-un-script

Utilisateur anonyme
12 janv. 2010 à 11:01
Très utile :)
Merci CodeFalse !
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
2 févr. 2009 à 06:26
Salut,
Je ne savais pas que l'on pouvait forker en PHP.
Cela vient de me donner des idées nouvelles pour un projet qui était sommeil depuis un petit moment.

Pour ce qui est de la différence entre multi-process et multi-thread, je dirais que le premier donne vie à des processus enfant indépendant les un des autres dans le sens où si l'on déclare un tableau de 2000 éléments servant de zone de swap, chacun des enfants aura son propre swap, alors qu'avec le multi-thread, tout le monde utilise la même zone de swap. Il faut donc avoir un processus maitre qui va gérer les accès à la zone en évitant que deux thread ne tentent d'écrire en même temps au même endroit.

Pour faire du multi-thread, il faut avoir un processus central qui va répartir les temps d'execution de ses enfants ainsi que leurs ressources. Dans le cas présent, on créer des enfants mais on laisse le moteur php de la machine en gérer l'exécution. Donc c'est php qui est multi-thread, alors que ton source lui est multi-process...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
27 janv. 2009 à 20:23
@HVB: d'après ce que tu dit, ce serait donc du multi-threading, car mes deux threads/processus "partagent les mêmes données", non ?

Il est possible que je fasse le mélange entre les deux, donc un peu d'éclairages sont les bienvenus dans ce cas :)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 janv. 2009 à 18:40
les deux methodes font de l'execution parallele...
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
27 janv. 2009 à 18:25
J'ai pas lu le code, mais au vu de la description, et de ce que je sais du PHP... ceci n'a rien du concept de multi-threading. Forker un process ne veux pas dire multi-threading.
Tu fais du multi-processus, ce qui est fondamentalement différent... (tu le dis toi-même d'ailleurs, tu parle de processus, et jamais de threads...)

Ce qui m'avait le plus marqué pour bien comprendre la différence théorique :
Deux processus sont indépendant l'un de l'autre.
Deux threads partagent les mêmes données.

C'est super vite résumé parce que j'ai fini ma journée de boulot ( :p ), mais ça résume à peu près la chose...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
26 janv. 2009 à 09:51
En effet, c'est mieux qu'une boucle infinie avec un paramètre pour savoir si une autre fonction à répondu :p

Je suis pas très java, malgré que j'aime bien ce langage. Je n'ai pas souvent l'occasion de travailler avec, et je trouve ca dommage :(
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 janv. 2009 à 08:26
salut

ce qui est interessant quand on joue avec les multi processus, c'est de faire de la synchronisation (un process attend que l'autre ai finni un truc pour continuer)

on a souvent besoin de ca, exemple simple :

une fonction de confirmation attend que l'utilisateur clique sur une case "ok" ou "cancel" avant de renvoyer vrai ou faux.

pour ca, en java, on a des wait et notify, et c'est super joli, tu gagnes BEAUCOUP de CPU a les utiliser.
Rejoignez-nous