Home > Article > Backend Development > What is the method for creating queue in python process pool?
In python, you can use the multiprocessing
module to create process pools and queues.
The following is sample code for using multiprocessing.Pool
and multiprocessing.Queue
to create process pools and queues:
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())
In the above example code, first use multiprocessing.Pool
to create a process pool with 4 processes, and then use multiprocessing.Queue
to create a queue. Tasks are added to the queue through the queue.put()
method.
Next, a task function process_task
is defined, which is used to process tasks. During task processing, you can use the queue.get()
method to remove tasks from the queue.
Finally, use the pool.apply_async()
method to submit the task function process_task
to the process pool for execution, and save the result in the results
list. Processes in the process pool will automatically remove tasks from the queue and execute them.
Finally, use the pool.close()
method to close the process pool, and use the pool.join()
method to wait for all tasks to be completed.
Note that multiprocessing.Queue
is a process safe queue that can share data between multiple processes. And using ordinary queue.Queue
to share data between multiple processes will cause exceptions.
The above is the detailed content of What is the method for creating queue in python process pool?. For more information, please follow other related articles on the PHP Chinese website!