IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

travail en multi proc


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 38
    Points : 22
    Points
    22
    Par défaut travail en multi proc
    Bonsoir,

    mon probleme :
    j'ai un tableau de valeur ID

    je dois utilisé n processus pour parcourir ce tableau , recupere ID ( en le dépilant du tableau et bloquer les autre processus pour ne pas avoir le meme ID traité).
    chaque processus devra effectué le meme travail avec les ID.

    bref voila ou j'en suis :

    le tableau de base qui doit servir a chaque proc est bien rempli.

    $Tableau = array(1,2,3,4,5,6,7,8,9,10); // exemple bidon pour vous expliquer

    function sig_handler est bien defini

    maintenant j aimerais executer mes proc tant que mon tableau n'est pas vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    while(count($Tableau)>0){
    	$pid = pcntl_fork();
    	if($pid == -1) {
    		// Impossible de forker ...  
    		die("Impossible de me forker!");
    	} elseif($pid) {
    		// Nous sommes le parent 
    		array_push($Enfants, $pid);
     
    	} else {
    		// nous sommes le processus enfant, lancement de la boucle de traitement  
    		FunctionSpecial();
    		exit();
    	}
    }
    ca c'est le code avec lesquel je dois bosser.
    pour pas que les processus puisse recup le meme ID , je pensais declarer un tableau avec les pid des proc en key et pour valeur l'ID recup de $Tableau.
    et ce tableau commun serais en memoire partagé sur les enfants.
    et du coté du parent, quand il voit qu un enfant a fini et aurait donc viré son ID du tableau partagé , il dépilerais une valeur du $Tableau et l"insererais ds la tableau partagé.

    bon c'est une idée
    je suis un peu pommé.
    si vous pouviez m'aidez a résoudre ce prob qui est que n processus doivent traiter les valeur d'un meme array

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    les "fork" sont dans des processus séparés donc ce sont des variables différentes
    si tu veux des données communes tu devras utiliser une base de données

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 38
    Points : 22
    Points
    22
    Par défaut fork
    je partage un tableau car les variable du parent sont copié chez les enfants

    par contre mon probleme

    le parent creer 5 enfants, une fois a la fin du fork

    je fais une boucle qui attend qu'au moin un enfant est fini pour le relancer en piochant une variable ds le tablo partagé

    ca marche presque sauf que ma boucle qui se trouve ds le code du parent (apres ttes les conditions du fork), s'execute bien et on retourne au debut du fork qui recreer 5 processus.

    mais elle s execute bien que si mes 5 enfants soient tous termine ( killé).
    avec la function waitpid du fork

    Bref ma question , existe t il un moyen de relancer un enfant quand celui ci se termine , pendant que les 4 autres travail encore ?

Discussions similaires

  1. [multi Proc] cherche conseil!?
    Par airod dans le forum Général Python
    Réponses: 10
    Dernier message: 09/11/2009, 14h01
  2. Utilisation processeur en multi proc
    Par la_praline dans le forum C#
    Réponses: 1
    Dernier message: 26/07/2009, 13h11
  3. proc capability : graphiques multi-courbes
    Par mitmit dans le forum ODS et reporting
    Réponses: 8
    Dernier message: 22/01/2008, 11h16
  4. Réponses: 35
    Dernier message: 24/04/2007, 17h11
  5. [MySQL] SQL travail en multi cessions
    Par laurencin dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/04/2006, 08h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo