Я использую 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);
}
}
}
Постскриптум Извините за мой английский — это не мой родной язык.
Может быть, вы должны попытаться использовать методы синхронизации для этого? Я не знаю, ваша задача, но вы можете попробовать, например, замок или даже использовать рабочие а также бассейны для этого вопроса. Также вы можете создать специальный класс для хранения данных, унаследованных от Составная который позаботится о безопасности данных.
Других решений пока нет …