第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用“spawn”啟動(dòng)redis進(jìn)程但面臨TypeError:

使用“spawn”啟動(dòng)redis進(jìn)程但面臨TypeError:

楊__羊羊 2023-10-18 21:20:31
我必須使用“spawn”來啟動(dòng)進(jìn)程,因?yàn)槲倚枰谶M(jìn)程之間傳輸 cuda 張量。但是使用“spawn”創(chuàng)建redis進(jìn)程總是面臨TypeError:無法pickle _thread.lock對象由于某種原因,這段代碼刪除了某些部分看來只有使用“fork”才能正常工作import redisfrom torch.multiprocessing import Processclass Buffer(Process):    def __init__(self, name=0, num_peers=2, actor_queue=0, communicate_queue=0):        Process.__init__(self)              #some arguments        self.actor_queue = actor_queue        self.communicate_queue = communicate_queue               pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)        self.r = redis.Redis(connection_pool=pool)        self.r.flushall()    async def write(self, r):    #do sth    async def aggregate(self, r):    #do sth    def run(self):        name_process = mp.current_process().name + str(mp.current_process().pid)        print('starting...', name_process)        loop = asyncio.get_event_loop()        asyncio.set_event_loop(loop)        tasks = asyncio.gather(            loop.create_task(self.write(self.r)),            loop.create_task(self.aggregate(self.r)),        )        try:            loop.run_until_complete(tasks)        finally:            loop.close()if __name__ == '__main__':    mp.set_start_method('spawn')    queue = mp.Queue(maxsize=5)    queue.put('sth')    name = 'yjsp'    num_peers = 2    p =Buffer(name, num_peers, queue, c_queue)    p.start()
查看完整描述

1 回答

?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

問題解決了!

我們應(yīng)該在 run() 中定義池和其他東西

原因如下:線程存在于進(jìn)程內(nèi)部,并且進(jìn)程旋轉(zhuǎn)子進(jìn)程以啟用并行。線程需要鎖來防止資源問題,例如多個(gè)進(jìn)程獲取相同的資源并導(dǎo)致死鎖。

如果我們在 run() 中定義池,那么當(dāng)我們進(jìn)入 run() 方法時(shí),我們就已經(jīng)處于子進(jìn)程中。

像這樣

    def run(self):
        pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
        r = redis.Redis(connection_pool=pool)
        r.flushall()


查看完整回答
反對 回復(fù) 2023-10-18
  • 1 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號