masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDerniè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és1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 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és12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 27 janv. 2009 à 18:40
les deux methodes font de l'execution parallele...
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 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és1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 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és12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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.
12 janv. 2010 à 11:01
Merci CodeFalse !
2 févr. 2009 à 06:26
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...
27 janv. 2009 à 20:23
Il est possible que je fasse le mélange entre les deux, donc un peu d'éclairages sont les bienvenus dans ce cas :)
27 janv. 2009 à 18:40
27 janv. 2009 à 18:25
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...
26 janv. 2009 à 09:51
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 :(
26 janv. 2009 à 08:26
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.