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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用多處理隊列,池和鎖定的簡單示例

使用多處理隊列,池和鎖定的簡單示例

慕妹3146593 2019-08-30 16:54:30
我試著閱讀http://docs.python.org/dev/library/multiprocessing.html上的文檔,但我仍然在努力處理多處理隊列,池和鎖定?,F(xiàn)在我能夠構(gòu)建下面的示例。關(guān)于隊列和池,我不確定我是否以正確的方式理解了這個概念,所以如果我錯了,請糾正我。我想要實現(xiàn)的是在時間處理2個請求(在這個例子中數(shù)據(jù)列表有8個)所以,我應(yīng)該使用什么?池創(chuàng)建2個進程,可以處理兩個不同的隊列(最多2個)或者我應(yīng)該只使用Queue每次處理2個輸入?鎖定將正確打印輸出。import multiprocessingimport timedata = (['a', '2'], ['b', '4'], ['c', '6'], ['d', '8'],        ['e', '1'], ['f', '3'], ['g', '5'], ['h', '7'])def mp_handler(var1):    for indata in var1:        p = multiprocessing.Process(target=mp_worker, args=(indata[0], indata[1]))        p.start()def mp_worker(inputs, the_time):    print " Processs %s\tWaiting %s seconds" % (inputs, the_time)    time.sleep(int(the_time))    print " Process %s\tDONE" % inputsif __name__ == '__main__':    mp_handler(data)
查看完整描述

3 回答

?
炎炎設(shè)計

TA貢獻1808條經(jīng)驗 獲得超4個贊

這可能與問題沒有100%的關(guān)聯(lián),但在我搜索使用隊列的多處理的示例時,這首先出現(xiàn)在谷歌上。


這是一個基本的示例類,您可以實例化并將項目放入隊列中,并且可以等到隊列完成。這就是我所需要的一切。


from multiprocessing import JoinableQueue

from multiprocessing.context import Process



class Renderer:

    queue = None


    def __init__(self, nb_workers=2):

        self.queue = JoinableQueue()

        self.processes = [Process(target=self.upload) for i in range(nb_workers)]

        for p in self.processes:

            p.start()


    def render(self, item):

        self.queue.put(item)


    def upload(self):

        while True:

            item = self.queue.get()

            if item is None:

                break


            # process your item here


            self.queue.task_done()


    def terminate(self):

        """ wait until queue is empty and terminate processes """

        self.queue.join()

        for p in self.processes:

            p.terminate()


r = Renderer()

r.render(item1)

r.render(item2)

r.terminate()


查看完整回答
反對 回復(fù) 2019-08-30
  • 3 回答
  • 0 關(guān)注
  • 400 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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