Вопрос

Я новичок в PHP, поэтому, чтобы начать работу, я решил внедрить Синглтон.

Хотя я могу воссоздать синглтонский рисунок в PHP, но я не уверен, как реализовать блокировку с двумя проверенными.

Это даже возможно/необходимо в PHP. Я где -то читал, что PHP не многопоточно? Может кто -нибудь это подтвердить?

Если он многопоточный, может ли кто -нибудь объяснить мне, как Lock () или Synchronize () работают в PHP?

Спасибо, Генри

Это было полезно?

Решение

Архитектура совместного использования

PHP имеет Архитектура совместного использования:

  • Как и http, каждый запрос отличается
  • Общие данные доведены до уровня хранилища данных
  • Избегайте передних контроллеров

Это дает нам:

  • Возможность загружать баланс
  • Невидимое отказование от одного обратного центра в другое
  • Лучшая модуляризация приложений
  • Легче разрабатывать и отлаживать

Двойная проверка блокировки

Но я не уверен, как реализовать блокировку с двумя проверенными.

В целом, уровень базы данных отвечает за это. Стандарт MySQL (InnoDB) имеет, например, уровень строк блокировка(что должно быть достаточно для этого).

Innodb делает блокировку на уровне строк и запускает запросы как непрерывные последовательные чтения по умолчанию, в стиле Oracle.

Если этого недостаточно, чем SQL, например, транзакции чтобы это произошло.

Книги онлайн определяет транзакцию как «последовательность операций, выполненных как единая логическая единица работы»

Вилка процессов

Как и слайды говорят, что у PHP есть архитектура-доля (традиционная), которая также подразумевает, что у PHP нет поток (модель). Анкет Хотя вы можете компилировать (не включен по умолчанию) PHP, чтобы поддержать вилка процессы, которые могут общаться друг с другом. Когда вы также компилируете Функции семафора Тогда вы можете сделать что -то вроде sem_acquire а также sem_release. Анкет Но в целом это не применяет PHP.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top