複数のサブプロセスに処理を分割しようとする次のスニペットがあります。
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 を再度呼び出した場合の結果がわからないためです。