Прочитайте некоторые тексты о блокировке в PHP.
Все они, главным образом, обращаются к http://php.net/manual/en/function.flock.php.
Эта страница рассказывает об открытии файла на жестком диске.
Неужели это так? Я имею в виду, что это делает блокировку очень дорогой - это означает, что каждый раз, когда я хочу заблокировать, мне придется обращаться к жесткому диску) =
Может больше утешить меня восхитительной новостью?
Edit:
Из-за некоторых ответов, которые у меня есть, я хочу спросить об этом. Мой script будет работать только одним потоком или несколькими? Потому что если это один, то я, очевидно, не нуждаюсь в мьютексе. Есть ли сжатый ответ?
Что именно я пытаюсь сделать
Ответов на вопрос ircmaxell.
Это история:
У меня есть два ftp-сервера. Я хочу показать на своем веб-сайте, сколько онлайн-пользователей онлайн.
Итак, я думал, что эти ftp-серверы будут "POST" их статистики на определенную страницу PHP script. Предположим, что URL этой страницы " http://mydomain.com/update.php".
На главной странице сайта (http://mydomain.com/index.php") Я покажу кумулятивную статистику (онлайн-пользователи).
Что это.
Моя проблема в том, что я не уверен, что, когда один ftp-сервер обновляет свою статистику, а другой тоже делает это, информация будет смешанной.
Как при многопоточности; Два потока одновременно увеличивают некоторую переменную "int". Это произойдет не так, как ожидалось, если вы не синхронизируете между ними.
Итак, у меня будет проблема? Да, нет, может быть?
Возможное решение
Мы долго думаем об этом, у меня есть идея здесь, и я хочу, чтобы вы дали свое мнение.
Как сказано, эти ftp-серверы будут публиковать свою статистику каждые раз в 60 секунд.
Я думаю о том, что этот файл "stats.php".
Он будет включен при обновлении script, на котором серверы ftp переходят на страницу ( "update.php" ) и на страницу "index.php", где посетители видят, сколько пользователей находятся в сети.
Теперь, когда обновляется ftp-сервер, script на "update.php" будет изменять "stats.php" с новой совокупной статистикой.
Сначала он будет читать статистику, включенную в "stats.php", затем накапливается, а затем переписывать этот файл.
Если я не ошибаюсь, PHP обнаружит, что файл ( "stats.php" ) изменен и загружает новый. Правильно?