PHP怎么同时执行,或者说多个进程执行?


比如一个文件放着1万一个URL,然后有个PHp文件要读取这一万个URL,然后读URL把有邮箱全取出来,
那么问题就来了,一个文件处理这么多的话肯定慢死了,一个一个遍历一个一个读。
我意思是能不能读取到一个URL就开一个PHP进程单独处理,在读到一个在开一个PHP进程,这是我的思路,大神有好的办法吗?

php-fpm 多线程 php 多进程 并发

BigLub 8 years, 10 months ago

用计划任务吧,
php xxx.php 每次处理10-20条,
然后用shell脚本,每秒处理一次
这样子的话,系统压力应该不大。又能够快速处理

人类皆天才 answered 8 years, 10 months ago

开1w个进程操作进程在进程切换的时候会有很大的开销,性能不一定能达到预期,甚至操作系统崩溃也是有可能的,我理解你这个程序是不是爬虫之类的脚本,不是线上的服务?如果只是这种线下任务的话,其实有简单的方法,比如你可以用split命令将1w个url分成100个,然后用shell写个循环,开100个进程去执行

星界拉菲露 answered 8 years, 10 months ago

PHP 5.3 以上版本,使用pthreads PHP扩展,可以使PHP真正地支持多线程。多线程在处理重复性的循环任务,能够大大缩短程序执行时间。
参考下这里 http://zyan.cc/pthreads/

wkdbryl answered 8 years, 10 months ago

旅人_学徒未满 answered 8 years, 10 months ago

Your Answer