我正在運行一個程序,它啓動一個隊列來回發送信息的進程。我無法獲得一個類(從Process進行子類化)在Windows中啓動(它在Linux上工作)。代碼的簡化版本是:進程子類無法在窗口中運行
from multiprocessing import Process, Queue
class Client(Process):
def __init__(self, q):
super(Client, self).__init__()
self._q = q
def run(self):
self.startClient()
def startClient(self):
self._q.put('abc')
class Other(object):
def start(self):
self.q = Queue()
self.client = Client(self.q)
self.client.start()
開始處理(客戶端)不使「運行」(並因此startClient)被調用。
我知道一個簡單的解決方案是使用主入口點(如果__name__
=='__main__
':),但這是一個較大的程序的一部分,不能通過該入口點進行訪問。
是否有任何其他方式可以讓這個工作在Windows上?
您使用哪些代碼來運行該過程? – BrenBarn
大型項目的主要模塊是什麼?它可以導入而不需要開始一些冗長的工作? –
@BrenBarn:如果你把'其他'作爲一個更大的類來做一堆處理(包括它們之間的隊列設置的數據)。 「其他」課程是一個較大系統中的衆多課程之一。 – PeteOopNorf