多线程的异常处理

mac2022-06-30  26

1. 

# -*- coding: utf-8 -*-def get_multithreading_res(executor,fun_name,arg_list): i = 1/0 return list(executor.map(fun_name, arg_list)) def task_func(i): try: if i == 'a': i = i/0 return {'status': 0, 'msg': i} if i == 'b': return {'status': 1, 'msg': i} if i == 'c': return {'status': 0, 'msg': i} except Exception as e: return {'status': -1, 'msg': e} def f1(): # 1.thread_arg thread_arg=['a','b','c'] try: # 2.提交多线程 multithread_res_list = get_multithreading_res(settings.common_executor, task_func, thread_arg) print('multithread_res_list',multithread_res_list) # 3.判断结果: for i_thread_res in multithread_res_list: if i_thread_res['status'] ==1: print('返回成功',i_thread_res) elif i_thread_res['status'] ==0: print('返回失败',i_thread_res) else: print('调用task_func有异常', i_thread_res['msg']) except Exception as e: print('执行f1函数发生异常:%s' %e) f1()

 


2.任务函数不做异常处理,出异常后,多线程中断:

# -*- coding: utf-8 -*-def get_multithreading_res(executor,fun_name,arg_list): return list(executor.map(fun_name, arg_list)) def task_func(i): if i == 'a': i = i/0 return {'status': 0, 'msg': i} if i == 'b': return {'status': 1, 'msg': i} if i == 'c': return {'status': 0, 'msg': i} def f1(): # 1.thread_arg thread_arg=['a','b','c'] try: # 2.提交多线程 multithread_res_list = get_multithreading_res(settings.common_executor, task_func, thread_arg) print('multithread_res_list',multithread_res_list) # 3.判断结果: for i_thread_res in multithread_res_list: if i_thread_res['status'] ==1: print('返回成功',i_thread_res) elif i_thread_res['status'] ==0: print('返回失败',i_thread_res) else: print('调用task_func有异常', i_thread_res['msg']) except Exception as e: print('执行f1函数发生异常:%s' %e) f1()

 

3.

# -*- coding: utf-8 -*-def get_multithreading_res(executor,fun_name,arg_list): return list(executor.map(fun_name, arg_list)) def task_func(i): try: if i == 'a': i = i/0 return {'status': 0, 'msg': i} if i == 'b': return {'status': 1, 'msg': i} if i == 'c': return {'status': 0, 'msg': i} except Exception as e: return {'status': -1, 'msg': e} def f1(): # 1.thread_arg thread_arg=['a','b','c'] try: # 2.提交多线程 multithread_res_list = get_multithreading_res(settings.common_executor, task_func, thread_arg) print('multithread_res_list',multithread_res_list) # 3.判断结果: for i_thread_res in multithread_res_list: if i_thread_res['status'] ==1: print('返回成功',i_thread_res) elif i_thread_res['status'] ==0: print('返回失败',i_thread_res) else: print('调用task_func有异常', i_thread_res['msg']) except Exception as e: print('执行f1函数发生异常:%s' %e) f1()

 

2.

 

转载于:https://www.cnblogs.com/dingyunfeng/p/11261085.html

最新回复(0)