Я использую pthreads в php. У меня есть два потока для работы с массивом, который содержит соединения пользователей. Когда начинается второй поток, он делает копию этого массива для себя. После изменения этого массива основным потоком второй поток не имеет новых элементов. Как запретить делать копию этого массива для потоков?
class AsyncClass extends Thread
{
private $_message = null;
private $_timeout = 0;
private $connected_users;
public function __construct($message, $timeout, $connected_users)
{
$this->_message = $message;
$this->_timeout = $timeout;
$this->connected_users = $connected_users;
}
public function run()
{
while(true){
var_export($this->connected_users); // NULL, because is no connected users
sleep($this->_timeout);
}
}
}
PS Извините за мой английский - это не мой родной язык.
Может быть, вы должны попытаться использовать для этого методы синхронизации? Я не знаю вас, но вы можете попробовать, например, заблокировать или даже использовать рабочих и пулов для этой проблемы. Также вы можете создать специальный класс для хранения данных, унаследованных от Stackable, которые будут заботиться о безопасности данных.