Экономия PHP синглтон без замков?

Я родом из мира C ++.

А недавно я начал использовать Apache Thrift, среду RPC. Я пишу код клиента PHP и код сервера Python.

Когда я читаю реализацию PHP, я нахожу следующее:

class TStringFuncFactory {
private static $_instance;

/**
* Get the Singleton instance of TStringFunc implementation that is
* compatible with the current system's mbstring.func_overload settings.
*
* @return TStringFunc
*/
public static function create() {
if(!self::$_instance) {
self::_setInstance();
}

return self::$_instance;
}
....
}

Это синглтон БЕЗ замков.

Какова схема обработки PHP? Гарантирует ли это, что этого не произойдет, условие риска.

4

Решение

+1 @ N.B.

PHP (cli или http) существует как единый поток в одном ядре процессора, если только вы не проделаете настоящую работу, чтобы сделать ваше приложение многопоточным.

Как можно использовать многопоточность в приложениях PHP

Для стороны HTTP каждое выполнение PHP живет и умирает с циклом запроса. Сервер может обрабатывать несколько запросов одновременно, что приведет к нескольким одновременным выполнениям PHP, но каждый полностью независим от следующего.

Так что в основном это не проблема. Для всех целей и задач проверка статического члена данных удовлетворяет одноэлементному шаблону.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]