Я использую многопроцессорный пакет pyhton в стандартной модели клиент-сервер.
У меня есть несколько типов объектов на сервере, которые я регистрирую с помощью метода BaseManager.register
и использую с клиента через прокси (на основекласс AutoProxy
).
При использовании этих прокси-серверов из нескольких клиентских потоков появлялись случайные ошибки, и после некоторого чтения я обнаружил, что сами экземпляры Proxy не являются потокобезопасными.См. многопроцессорная документация Python :
Потоковая безопасность прокси
Не используйте прокси-объект из более чем одного потока, если только вы не защитите его с помощью блокировки.(Никогда не возникает проблем с разными процессами, использующими один и тот же прокси-сервер.)
Мой сценарий идеально подходит для этого.Хорошо, я знаю, почему это не удается.Но я хочу, чтобы это работало :), поэтому я обращаюсь за советом - каков наилучший способ сделать этот потокобезопасным?
В моем конкретном случае (а) я работаю с одним клиентским потоком 90% времени,(б) фактические объекты за прокси являются поточно-ориентированными, и (в) что я хотел бы хотеть одновременно вызывать несколько методов одного и того же объекта прокси.
Как всегда, Интернет, те, кто мне помогают, должны жить и никогда не умирать!Те, кто делают все возможное, тоже могут получить утешительный приз.
Спасибо,
Йонатан