def create_and_start_process_with_queue(target_module, args_dict, jobs_list, output_q, p_name=''):
"""Creates python multiprocesses for the provided target module with the
provided arguments and starts them
Arguments:
1. target_module = module for which multiple processes has to be started
2. args_list = list of arguments to be passed to the target module
3. jobs_list = list of process created
4. output_q = multiprocessing.Queue object to handle returns from the target module
"""
# THis is to handle the first process when
# output_q wll be none,create a new q and use the
# same q for all instances of process started
if output_q is None:
# output_q = multiprocessing.JoinableQueue()
output_q = multiprocessing.Manager().Queue()
args_dict["output_q"] = output_q
# now we need to convert the args_dict into
# a tuple so first create a listout of the dict
# and then convert the list into a tuple
args_list = []
for _, value in args_dict.iteritems():
args_list.append(value)
args_tuple = tuple(args_list)
process = multiprocessing.Process(name=p_name, target=target_module, args=args_tuple)
jobs_list.append(process)
process.start()
return process, jobs_list, output_q
multiprocessing_utils.py 文件源码
python
阅读 34
收藏 0
点赞 0
评论 0
评论列表
文章目录