I have spend hours, days, weeks trying to understand how PHP pcntl really works and still dont know exactly what is really happening.
Why parents and childs ? I am using Debian (am far for being an expert in computers I must admit) but all I want to do is receive a message from my webSocket client (which I have already managed to do) and keep listening other users.
In other words, if I receive a message and use a sleep(5);
then the server will not listen any other messages until this piece of code is finished.
Note that the sleep(5)
is for test purposes. I plan to process hundreds of messages simultaneously and thats why am trying to figure out how could pcntl
be helpfull.
$pid = pcntl_fork();
echo "start
";
if($pid) {
// parent process runs what is here
echo "parent
";
}
else {
// child process runs what is here
echo "child
";
}
echo "end
";
What exactly is happening behind the above script ? Why am I getting this result ?
start
parent
end
start
child
end
Could someone please explain me what is the computer "thinking" ?