簡體   English   中英

Python 的 SOAPpy 庫是線程安全的嗎?

[英]Is Python's SOAPpy library threadsafe?

Python 的 SOAPpy 庫的線程安全性如何? 我發現文檔不存在,並且在任何地方都沒有提到線程安全(支持或反對)。

具體來說,線程可以共享一個 SOAPpy.SOAPProxy object,調用不同的 RPC嗎? 例如,

client = SOAPpy.SOAPProxy(url)
thread1: client.MyFunc()
thread2: client.MyFunc()

沒有不良影響?

此外,代理對象的構建是否昂貴

SOAPpy.SOAPProxy似乎不是線程安全的。 在 0.12.0 版本的__call方法中,有一個賦值( Client.py第 360 行):

        r, self.namespace = self.transport.call(self.proxy, m, ns, sa,
                                                encoding = self.encoding,
                                             http_proxy = self.http_proxy,
                                                config = self.config)

因此,如果從 2 個不同的線程調用client.MyFunc() ,它們將創建單獨的連接,但都會為self.namespace屬性分配一個值。

從好的方面來說,為每個線程構造一個 SOAPProxy 實例應該非常有效。 我能夠在大約 1 毫秒內在虛擬機上創建 100 個實例,與 SOAP 請求往返時間相比應該很小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM