zoukankan      html  css  js  c++  java
  • 多线程的异常处理

    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.

  • 相关阅读:
    Sublime Text 3 使用总结
    全选,不选,反选 jquery
    表格展开
    JavaScript中的window对象
    《JS权威指南学习总结--第十一章子集和扩展》
    《JS正则表达式》
    《JS中的面向对象技术》
    《JS权威指南学习总结--9.5 类和类型》
    prototype属性的理解
    《JS权威指南学习总结--9.3 JS中JAVA式的类继承》
  • 原文地址:https://www.cnblogs.com/dingyunfeng/p/11261085.html
Copyright © 2011-2022 走看看