我有一个PHP脚本,它产生两个子进程(pcntl_fork()),每个进程调用单个类实例的方法(类和方法的名称及其功能被简化以便于解释)。
class Main_Class { public $array = array(); public function push($value) { $this->array[] = $value; } public function pop() { return array_shift($this->array); } } $pc = new Thread_Creator(); $main_class = new Main_Class(); $pc->fork(array($main_class, 'push'), 1); $pc->fork(array($main_class, 'pop'), 1); The fork method is executed like so: call_user_func($main_class, 'pushToArray')
我希望这些进程共享相同的资源(一个进程将信息推送到类型为array的公共类变量中,同时从中弹出一个)。目前,两个进程同时运行,但只有一个似乎可以访问类变量$ array。
单独的PID之间是否可以共享资源?
有任何解决此问题的建议吗? (我希望将这些过程分开,因为我打算以不同的间隔运行它们)
如果您需要更多信息或代码段,请告诉我们
答案 0 :(得分:2)
我能够使用共享内存来完成任务。对于那些感兴趣的人,请看一下:
http://onlamp.com/pub/a/php/2004/05/13/shared_memory.html?page=2