Portál AbcLinuxu, 13. července 2025 16:25


Dotaz: php+pcntl

5.3.2013 10:32 php
php+pcntl
Přečteno: 248×
Odpovědět | Admin

Dobry den, mam v php cyklus s pcntl:

global $TestArray;
for ($i = 1; $i <= 5; ++$i) {
$pid = pcntl_fork();

if (!$pid) {
sleep(1);
print "In child $i\n";
$TestArray[$i]=$i;
echo "$TestArray[$i]";
exit($i);
}
}

while (pcntl_waitpid(0, $status) != -1) {
$status = pcntl_wexitstatus($status);
echo "Child $status completed\n";
}

V prvom cykle mam

$TestArray[$i]=$i;

echo "$TestArray[$i]";

toto echo mi vypise hodnotu ktora sa nachadza v $TestArray

ale po skonceni toho cyklu je tato premenna prazdna

echo "vypisujem z cyklu\n";
for ($i = 1; $i <= 5; ++$i) {
echo "$TestArray[$i]";
}

toto druhe echo mi uz nevypise nic, pokial vynecham pcntl tak funguje aj druhy cykls ale ked je pcntl v prvom cykle druhy cyklus nevipise nic

 

dakujem za odpovede.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Bedňa avatar 9.3.2013 13:38 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: php+pcntl
Odpovědět | | Sbalit | Link | Blokovat | Admin
++$i mahraď $i++
KERNEL ULTRAS video channel >>>
10.3.2013 05:25 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: php+pcntl
To by mělo být v tomhle kódu úplně jedno.
gogloid avatar 15.3.2013 14:51 gogloid | skóre: 10 | blog: Tomášovy poznatky | Kladno/Brno
Rozbalit Rozbalit vše Re: php+pcntl
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nefunguje to, protože child processes nemají sdílenou paměť. (Link obsahuje i možná řešení.)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.