namedhao 发表于 2015-8-25 10:09:47

php多进程处理

php多进程处理
  往往我们会碰到一个情况,需要写一个脚本,这个脚本要处理的数据量极大,单进程处理脚本非常慢,那么这个时候就会想到使用多进程或者多线程的方式了。
  我习惯使用多进程的方式,php中使用多进程的时候需要使用pcntl,pcntl的使用可以看这个PHP的pcntl多进程
  但是这里有一个问题,一个主进程把任务分成n个部分,然后把任务分配给多个子进程,但是任务可能是有返回值的,所有的子进程处理完返回值以后需要把返回值返回给主进程。
  这个就涉及到了进程间通信了。进程间通信可以使用的方法当然很多了,比如用redis,用数据库,用文件等。
  php中最简单的要算shmop相关函数了。


[*]shmop_open  

[*]shmop_read  

[*]shmop_write  

[*]shmop_size  

[*]shmop_delete
  那怎么让一个类很容易有多进程处理的能力呢?可以使用php的trait,创建一个PcntlTrait,所有需要有多进程处理功能的类就use 这个trait就行。
  PcntlTrait代码如下:
  
页: [1]
查看完整版本: php多进程处理