讨论数量:
问题:pcntl_fork函数的应用场景是怎样的?
应该是 pcntl_fork() 函数吧,看问题里面还多了一个 r 。
回答
应用场景
- 可创建守护进程 (可以两次调用 pcntl_fork ,让子进程成为 session leader )
- 可创建多进程
- ...
性质:父子进程间遵循读时共享写时复制 Cow(CoypOnWrite)
- 关于 ( fork 出来的子进程 “继承” 父进程上文环境的) 这里给出一个场景
$number = 1;
$ppid = posix_getpid();
$pid = pcntl_fork();
if ($pid < 0) {
die('could not fork');
} else if ($pid > 0) {
// 写时复制 number 的副本
$number += 1;
echo "father process. father's ppid={$ppid} children's pid={$pid} | number={$number}" . PHP_EOL;
} else {
// 写时复制 number 的副本
$number += 2;
echo "children process. | number={$number}" . PHP_EOL;
}
,模糊理解应该是控制fork出来的子进程“继承”父进程上文环境的,请教了解这块的大神指点一下,应用场景是什么样子的?
关于 LearnKu
推荐文章: