Utilisation de Fork: plusieurs boucles executées en parrallèle - Perl - Programmation
Marsh Posté le 28-05-2009 à 21:30:57
Tu devrais trouver des idées ici:
http://hell.jedicoder.net/?p=82
http://mail.hyperic.org/pipermail/ [...] 00026.html
Si tu veux voir les fils exécuter des taches différentes, tu pourrais coder une table de procédures pour les invoquer selon l'indice de boucle de création du fils.
A+,
Marsh Posté le 24-11-2009 à 05:12:42
Bon déja je pense qu'il faudrait déclarer ton $count dans les for :
for (my $count=11; $count<15; $count++)
et
for (my $count=21; $count<25; $count++)
# enfin normalement ca marche quand même... c'est juste plus propre à mon avis
Et si tu comptes les synchroniser pour qu'elles soient toujours ensemble dans 100 000 boucles.... aie ! :-\
Et enfin, je ne suis pas sur que si le père quitte comme ca, les fils continuent à tourner .... (je dis juste qu'il faudrait vérifier, je ne sais plus trop...)
Marsh Posté le 27-05-2009 à 23:54:46
Je cherche à exécuter 4 boucle en l'occurrence des boucles infinies de type while(1) en simultané en utilisant le fonction fork. Je précise que ce sont 4 boucles différentes.
Pour le moment je me suis limité à tenter de faire 2 boucles "for" qui impriment des valeurs différentes mais ca ne fonctionne pas et les 2 boucles sont exécutées en séquence.
Si qqn pouvait m'indiquer comment faire X boucles en parrallèle sous perl ca m'aiderait bcp, voici mon code qui ne marche pas:
#!/usr/bin/perl
my $pid;
my $pid2;
my $count;
$pid = fork();
if (not defined $pid) {
die "Couldn't fork"
}
elsif ($pid == 0) {
for ($count=1; $count<5; $count++)
{
print("child 1 $count \n" );
}
exit(0)
}
$pid2 = fork();
if (not defined $pid2) {
die "Couldn't fork"
}
elsif ($pid2 == 0) {
for ($count=11; $count<15; $count++)
{
print("child 2 $count \n" );
}
}
Message édité par merou91 le 28-05-2009 à 00:36:33