> что такое клиенты у тебя?
> каких общих переменных ?
> у тебя несколько потоков будут обрабатывать одного и того же клиента?Нет, один поток - один клиент. Клиент - пользователь, который заходит на php часть, посылает запрос демону = и получает от демона ответ, что показать в браузер.
Общие переменные у меня - это части объектов: 1) на какой сайт зашел пользователь (каждый сайт - свой объект, ищится в map по хэшу при запросе) оч. редко сайты могут добавляться. т.е. прийдется для чтения блокировать. 2) на каждого пользователя отдельная сессия заводиться и помещается в map для извлечения каждый раз при запросе от того же пользователя и изменения.
как я это вижу, в основном идут блокировки "на всякий случай", потому что от одного и того же пользователя всегда один запрос. можно блокировать весь объект для чтения.
А в случае сайта, есть изменения объекта, например, количество посещений всего всеми пользователями.
пс. по сути решил уже, что буду пробовать многопоточную версию делать. просто хорошо было бы еще как-то придумать, чтобы все эти мютексы можно было бы отключить в любой момент и переключиться на "однопоточную версию" (на самом деле два потока, т.к. первый очередь создает только, с данными не работает, второй обрабатывает) для тестирования.