获取线程函数返回值

2019-04-25  本文已影响0人  鱼豆腐爱好者协会会长

通过集成Thread类,改写run方法,获取线程函数的返回值,进一步进行逻辑判断。

以下是样例代码:

import threading

import datetime

def add(a, b):

    for iin range(100):

    print("当前时间:%s,求和a(%d)+b(%d)+i(%d)" % (datetime.datetime.now(), a, b, i))

    return a+b

class MyThread(threading.Thread):

    """

    该类集成Thread类,目的是通过线程模拟并发操作,同时获取线程函数的返回值进行逻辑判断

    """

def __init__(self, func, args=()):

    super(MyThread, self).__init__()

    self.func = func

    self.args = args

    pass

def run(self):

    self.result =self.func(*self.args)

    pass

def getResult(self):

    try:

        return self.result

    except Exception as e:

        print(e)

        return None

    pass

if __name__ =='__main__':

    th1 = MyThread(add, (3, 7))

    th2 = MyThread(add, (4, 5))

    th1.setDaemon(True)

    th2.setDaemon(True)

    th1.start()

    th2.start()

    th1.join()

    th2.join()

    print(th1.getResult())

    print(th2.getResult())

    pass

上一篇 下一篇

猜你喜欢

热点阅读