【发布时间】:2019-04-06 03:32:58
【问题描述】:
我有以下 sn-p 尝试将处理拆分到多个子进程。
def search(self):
print("Checking queue for jobs to process")
if self._job_queue.has_jobs_to_process():
print("Queue threshold met, processing jobs.")
job_sub_lists = partition_jobs(self._job_queue.get_jobs_to_process(), self._process_pool_size)
populated_sub_lists = [sub_list for sub_list in job_sub_lists if len(sub_list) > 0]
self._process_pool.map(process, populated_sub_lists)
print("Job processing pool mapped")
主进程在while循环中调用搜索函数,如果队列达到阈值计数,则处理池将映射到进程函数,其中作业来自队列。我的问题是,python多处理池在执行过程中会阻塞主进程还是立即继续执行?我不想遇到“has_jobs_to_process()”评估为 true 并且在处理作业期间,它为另一组作业评估为 true 并且调用“self._process_pool.map(process,populated_sub_lists)”的情况再次,因为我不知道在进程运行时再次调用 map 的后果。
【问题讨论】:
标签: python multithreading parallel-processing python-multiprocessing process-pool