天天看點

python兩個循環同時運作_2個for循環能否同時運作,一個接一個地循環?

以下是問題的第一部分的解決方案-如何并行運作程序,以便每個程序都等待前一個程序完成後開始處理任務。我沒有在這裡讨論消息傳遞方面,因為它對我來說有點模糊,并且可以根據問題陳述不同地實作。在這個例子中,我們建立并運作三個worker,它們通過簡單的時間延遲來模拟執行。代碼段應該儲存到一個可以從指令行運作的檔案中。在

我們首先導入所需的子產品:#!/usr/bin/env python3

import time

from multiprocessing import Process, Event

并實作一個WorkerQueue類。這個類使勞工保持正确的秩序,并負責開始和結束他們。從業人員之間的通信是使用事件實作的。每個worker都有其他的\u ready和readyEvent字段,它們相應地訓示前一個worker和目前worker的完成狀态。注意,如果隊列中隻有一個worker,那麼它的其他準備就緒和就緒是相同的。在

^{pr2}$

然後,我們通過繼承Process類來實作工作程序本身。注意,也可以使用threading代替multiprocessing。在本例中,唯一更改的是Worker父類,Thread而不是{}。在class Worker(Process):

def __init__(self, delay, name=None):

super().__init__(name=name)

self.delay = delay

self.other_ready = Event()

self.other_ready.set()

self.ready = Event()

self.stop = Event()

def run(self):