共計 920 個字符,預計需要花費 3 分鐘才能閱讀完成。
在 Python 中,可以使用 multiprocessing
模塊來創建進程池和隊列。
以下是使用 multiprocessing.Pool
和multiprocessing.Queue
來創建進程池和隊列的示例代碼:
import multiprocessing
# 創建進程池
pool = multiprocessing.Pool(processes=4)
# 創建隊列
queue = multiprocessing.Queue()
# 將任務添加到隊列中
for i in range(10):
queue.put(i)
# 定義任務函數
def process_task(item):
# 處理任務
result = item * 2
return result
# 使用進程池執行任務
results = []
while not queue.empty():
item = queue.get()
result = pool.apply_async(process_task, args=(item,))
results.append(result)
# 等待所有任務完成
pool.close()
pool.join()
# 獲取任務結果
for result in results:
print(result.get())
在上述示例代碼中,首先使用 multiprocessing.Pool
創建了一個擁有 4 個進程的進程池,然后使用 multiprocessing.Queue
創建了一個隊列。任務通過 queue.put()
方法添加到隊列中。
接著,定義了一個任務函數 process_task
,該函數用于處理任務。在任務處理過程中,可以使用queue.get()
方法從隊列中取出任務。
最后,使用 pool.apply_async()
方法將任務函數 process_task
提交給進程池執行,并將結果保存在 results
列表中。進程池中的進程會自動從隊列中取出任務并執行。
最后,使用 pool.close()
方法關閉進程池,并使用 pool.join()
方法等待所有任務完成。
注意,multiprocessing.Queue
是進程安全的隊列,可以在多個進程之間共享數據。而使用普通的 queue.Queue
在多個進程之間共享數據會導致異常。
丸趣 TV 網 – 提供最優質的資源集合!
正文完