首页 > 代码库 > PHP多线程
PHP多线程
PHP 在liunx里面是可以实现多进程的,但需要使用liunx扩展:pcntl 扩展
主要代码是
1
2
3
4
5
6
7
8
9
10
11
|
$pid = pcntl_fork(); //创建子进程 if ( $pid == -1) { die ( ‘could not fork‘ ); //错误处理:创建子进程失败时返回-1. } else if ( $pid ) { pcntl_wait( $status ,WNOHANG); //父进程会得到子进程号,所以这里是父进程执行的逻辑 //如果不需要阻塞进程,而又想得到子进程的退出状态,则可以注释掉pcntl_wait($status)语句,或写成: //等待子进程中断,防止子进程成为僵尸进程。 } else { exit (0); //子进程得到的$pid为0, 所以这里是子进程执行的逻辑。 } |
从这样,可以看出来,父进程和子进程不是同步关系。父进程结束,子进程可以继续执行,父进程在等待子进程结束并回收。
这里的PHP-fpm 都是fork出来的子进程,并且都是并行执行的。 所以原本单线程需要23分钟执行的代码,这里fork出20个子进程,就可以把时间缩短到30秒
PHP多线程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。