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.

  • 相关阅读:
    Mysql游标的简明写法
    Sublime Text 介绍、用法、插件等
    [LeetCode#13] Roman to Integer
    [LeetCode#50] Pow(x, n)
    [LeetCode#240] Search a 2D Matrix II
    [LeetCode#238]Product of Array Except Self
    [LeetCode#171]Excel Sheet Column Number
    [LeetCode#258]Add Digits
    [LeetCode#264]Ugly Number II
    [LeetCode#263]Factorial Trailing Zeroes
  • 原文地址:https://www.cnblogs.com/dingyunfeng/p/11261085.html
Copyright © 2011-2022 走看看