Запись переменных в определенный адрес памяти, чтение и запись в / из этого адреса с информацией, такой как счетчик, может работать.
(Старая) статья о IPC (межпроцессное взаимодействие) может помочь вам
http://zez.org/article/articleview/46/
Из интереса, почему вы не хотите использовать файлы или базу данных?
Другое решение (несмотря на то, что, скорее всего, технически с использованием файлов илибазы данных) будет заставлять сценарий использовать определенный идентификатор сеанса.
<?php
$maximum = 1;
session_id(md5('myscript'));
session_start();
if( !isset( $_SESSION['count'] ) ) {
$_SESSION['count'] = 1;
} else {
if( $_SESSION['count'] >= $maximum ) {
die( "too many processes running" );
} else {
$_SESSION['count']++;
}
}
session_write_close();
// simulate running something
sleep(10);
session_id(md5('myscript'));
session_start();
$_SESSION['count']--;
session_write_close();
echo "<br />executed";
?>
Обратите внимание, что в приведенном выше примере вызов метода session_write_close () важен, поскольку выполнение сценария предотвратит счетчик.увеличивается до тех пор, пока не закончится иначе.И затем, когда он закрывает его, ему нужно открыть его, чтобы уменьшить счетчик.
Очевидно, что из-за повторного открытия сеанса любой выход из скрипта должен был быть буферизован (см. http://www.php.net/ob_start), чтобы предотвратить уже заголовкиотправленные ошибки