PDA

Visualizza la versione completa : fork


uMoR
18-10-2005, 16:28
ho bisogni di forkare circa un 100naio di processi figli, che devono salvare dei file (uno per figlio), poi il programma padre deve aspettare che tutti i figli abbiano finito di macinare e proseguire con le operazioni.

come posso fare per far attendere il programma padre ?

LordSaga640
21-10-2005, 17:51
wait() con for?

Non lo so, da parecchio che non forko XD

LordSaga640
21-10-2005, 17:57
questo un esempio di padre che genera due figli che terminano dopo differente tempo. Il padre attende la fine di entrmabi per finire:

if (fork() && fork()) { # se padre...
print "aspetto il figlio\n";
wait();
print "Il figlio ha finito\n";
wait();
print "Il figlio ha finito\n";
sleep 2;
exit();
} else { # Vengono generati due figli!
print "Aspetto rand() secondi ed esco\n";
sleep int(rand()*15)+3;
exit;
}

nel tuo caso potresti fare un for che faccia 100 wait!
ciao

uMoR
21-10-2005, 18:09
ho trovato un modulo che si chiama Parallel::ForkManager

tu gli dici quanti figli aprire e fa tutto lui, molto comodo..

Loading