У меня есть 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?
Есть предложения по решению этой проблемы?(Я хотел бы сохранить процессы раздельными, поскольку я намерен запускать их с разными интервалами)
Если вам нужна дополнительная информация или фрагменты кода, дайте мне знать