Как передать объект в поток, и сохранить изменения после его завершения?

Доброго времени суток, захотелось попробывать использовать потоки в php. Как оказалось это реализуемо с помощью Pthreads. Очень похоже на потоки в Java. Суть проблемы - пытаюсь передать объект, что то с ним делать в потоке и после завершения работы с потоком что то делать с результатом, проблема в том что при передаче объекта он скорей клонируется нежели используется как есть. Возможно я что то изначально делаю не так, недавно работаю с потоками.
Может кто сталкивался?
class Test extends Thread
{
	public $storage;
	function __construct($storage)
	{
		$this->storage = $storage;
	}

	function run()
	{
		$this->storage->param = 1;
		
	}
}


$stor = new StdClass();

$task = new Test($stor);

if($task->start()) //Перепробывал все доступные константы
{
	$task->join();

	if($task->isJoined()){
		var_dump($stor);
		//echo sizeof(Store::$store);
	}
}
  • Вопрос задан
  • 305 просмотров
Решения вопроса 1
да - он клонируется ....
function __construct(&$storage) - вот так попробуйте (в ПХП & перед переменной - это передача параметра по ссылке)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы