Я хочу, чтобы мои собственные суперглобальные переменные были доступны из всех моих сценариев, и я использую статические члены класса для достижения этой цели, но я обеспокоен тем, что, поскольку сервер php создает отдельный поток для каждого файла сценария и в некоторыхиз моих сценариев, которые я читаю или изменяю эти переменные, должны ли критические участки моего кода быть защищены мьютекс-блокировками?
пример использования
SuperGlobals.php
class MySuperGlobals {
public static $Variables=array("visited"=>array());
}
index.php
<?php
include "SuperGlobals.php";
array_push(MySuperGlobals::$Variables["visited"] ,"index");
echo MySuperGlobals::$Variables["visited"][count(MySuperGlobals::$Variables["visited"])-1];//last element
?>
page1.php
<?php
include "SuperGlobals.php";
array_push(MySuperGlobals::$Variables["visited"] ,"page1");
echo MySuperGlobals::$Variables["visited"][count(MySuperGlobals::$Variables["visited"])-1];//last element
?>
в приведенном выше примере - только для array_push потокобезопасный для статического члена (игнорируя эхо) икак насчет всего толчка и эха, если мы хотим защитить это, что должно быть сделано?я должен создать статический объект взаимного исключения в классе и заблокировать и разблокировать эти строки?