Начиная с нескольких дней, я пытаюсь выполнить следующее: у меня есть крошечная программа на C ++, которая непрерывно считывает данные из последовательного порта. Эти данные хранятся в общей памяти следующим образом: HANDLE hMapFile; hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 10, NULL); LPCTSTR pBuf; pBuf = (LPTSTR) MapViewOfFileEx( hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 10, NULL); while(true) […]
Этот код: shmop_delete(); shmop_close(); не удаляет разделяемую память. Эксперимент: $shmid = @shmop_open(1234, 'a', 0, 0); var_dump($shmid); доходность bool(false) конечно. Но $shmid = shmop_open(5678, 'c', 0644, 10); … shmop_delete($shmid); shmop_close($shmid); … $shmid = @shmop_open(5678, 'a', 0, 0); var_dump($shmid); доходность int(157) Почему еще не удалены? Как удалить общую память? Я запускаю apache в Windows 7.
Можно ли обмениваться переменными и массивами между всеми процессами PHP без их дублирования ? Используя memcached, я думаю, что PHP дублирует используемую память: $array = $memcache->get('array'); $ array будет содержать копию из memcached. Поэтому моя идея: может существовать статическая переменная, которая уже была определена и разделена между всеми процессами.
Недавно работая с расширением pthreads , я обнаружил аномалию. У меня простой объект с внутренним состоянием: class Sum { private $value = 0; public function add($inc) { $this->value += $inc; } public function getValue() { return $this->value; } } Теперь я создал класс Thread, который что-то делает с этим объектом: class MyThread extends Thread { […]
Есть ли способ в PHP использовать переменные «вне сеанса», которые не будут загружаться / выгружаться при каждой связи, например, на сервере Java? Пожалуйста, извините меня за недостаток точности, я не понимаю, как правильно писать. Основная идея заключалась бы в следующем: <?php … // $variablesAlreadyLoaded is kind of "static" and shared between all PHP threads // […]
http://www.php.net/manual/en/intro.shmop.php Shmop – это простой в использовании набор функций, который позволяет PHP читать, записывать, создавать и удалять сегменты разделяемой памяти Unix. Я не понимаю, какова цель этого расширения? Для чего его используют?
Есть ли способ хранить небольшие данные в ОЗУ с использованием PHP, чтобы я мог получить доступ к данным между разными сеансами вместо их регенерации. Что-то похожее на memcached (у меня нет доступа к memcahced). Мое текущее решение – это просто сохранить данные в файле.