PHP子级之间的共享资源';线程';


Shared Resources Between PHP Children 'Threads'

我有一个PHP脚本,它产生了两个子进程(pcntl_fork()),每个子进程都调用一个类实例的方法(为了更容易解释,简化了类和方法的名称及其功能)。

类Main_class{public$array=array();公共函数推送($value){$this->array[]=$value;}公共函数pop(){return array_shift($this->array);}}$pc=新Thread_Creator();$main_class=新的main_class();$pc->fork(数组($main_class,'push'),1);$pc->fork(数组($main_class,'pop'),1);fork方法的执行方式如下:call_user_func($main_class,'pushToArray')

我打算让这些进程共享相同的资源(一个进程将信息推送到数组类型的公共类变量中,而另一个进程从中弹出)。目前,两个进程同时运行,但似乎只有一个进程可以访问类变量$array。

独立PID之间是否可以共享资源?

有什么解决这个问题的建议吗?(我想将流程分开,因为我打算以不同的间隔运行它们)

如果您需要更多信息或代码片段,请告诉我

我能够使用共享内存来完成任务。对于那些感兴趣的人,看看这里:

http://onlamp.com/pub/a/php/2004/05/13/shared_memory.html?page=2

http://www.php.net/manual/en/book.sem.php