多线程获取返回值的类
classMyThread(object):'''多线程,获取返回值'''def__init__(self,func_list=None):self.ret_flag=0self.func_list=func_listself.threads=[]defset_thread_func_list(self,func_list):self.func_list=func_listdefret_value(self):returnself.ret_flagdeftrace_func(self,func,*args,**kwargs):ret=func(*args,**kwargs)self.ret_flag+=retdefstart(self):self.threads=[]self.ret_flag=0forfunc_dictinself.func_list:iffunc_dict["args"]:new_arg_list=[]new_arg_list.append(func_dict["func"])forarginfunc_dict["args"]:new_arg_list.append(arg)new_arg_tuple=tuple(new_arg_list)printnew_arg_tuplet=threading.Thread(target=self.trace_func,args=new_arg_tuple)else:t=threading.Thread(target=self.trace_func,args=(func_dict["func"],))self.threads.append(t)map(lambdax:x.start(),self.threads)map(lambdax:x.join(),self.threads)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。