python 获取 多线程的返回值


import time
import threading


class MyThread(threading.Thread):
    def __init__(self, target=None, args=(), **kwargs):
        super(MyThread, self).__init__()
        self._target = target
        self._args = args
        self._kwargs = kwargs

    def run(self):
        if self._target == None:
            return
        self.__result__ = self._target(*self._args, **self._kwargs)

    def get_result(self):
        self.join()#当需要取得结果值的时候阻塞等待子线程完成
        return self.__result__


def te(a, b=2, c=3):
    print(a, b, c)
    time.sleep(1)
    return 1


st = MyThread(target=te, args=(1,), c=4)
st.start()
print('result:',st.get_result())

执行结果:

1 2 4
result: 1


猜你喜欢

转载自blog.csdn.net/asd5629626/article/details/80228250