Использование Suds для SOAP в python, являются ли объекты suds.client.Client потокобезопасными?

Я использую Suds для доступа к веб-службе SOAP из python. Если у меня есть несколько потоков исполнения threading.Thread, может ли каждый из них одновременно безопасно обращаться к одному и тому же экземпляру suds.client.Client или я должен создавать отдельные объекты Client для каждого потока?


person kdt    schedule 07.06.2010    source источник


Ответы (1)


Насколько я знаю, они НЕ потокобезопасны. Вы можете безопасно использовать один и тот же клиентский объект, если вы используете очередь или пул потоков. Таким образом, когда один поток завершает работу с клиентом, следующий может использовать его.

Однако для сетевых событий вам, вероятно, следует спросить себя, что лучше. Многопоточность или асинхронное сетевое программирование? Недавно было предложено исправление для SUDS, чтобы включить поддержку асинхронных сокетов для использования с событиями. пакеты, такие как Twisted, greenlets и т. д.

person jathanism    schedule 10.07.2010
comment
Обратите внимание, что даже если вы используете гринлеты с suds, вы не обязательно сможете совместно использовать один и тот же экземпляр между зелеными потоками, поскольку ваш поток может быть запланирован во время операций ввода-вывода, и в этот момент состояние клиента может измениться. обновляться. - person Dobes Vandermeer; 06.01.2017