• Python多线程获取返回值


    在使用多线程的时候难免想要获取其操作完的返回值进行其他操作,下面的方法以作参考:

    一,首先重写threading类,使其满足调用特定的方法获取其返回值 

    import threading
    class MyThread(threading.Thread):
    """重写多线程,使其能够返回值"""
    def __init__(self, target=None, args=()):
    super(MyThread, self).__init__()
    self.func = target
    self.args = args

    def run(self):
    self.result = self.func(*self.args)

    def get_result(self):
    try:
    return self.result # 如果子线程不使用join方法,此处可能会报没有self.result的错误
    except Exception:
    return None

    二,调用get_result()方法,最终列表retval就是多线程返回值的集合:

    def parse_detail_page(self,items_list):
    retval
    , RetList, _Threads = [], [], []
    for url in items_list:
    t = MyThread(
    target=self.threadItem, args=(url,))
    t.start()
    _Threads.append(t)
    for t in _Threads:
    t.join()
    retval.append(t.get_result())
    def threadItem(self,url):
    """多线程请求"""
    response = requests.get(url)
    return response.text
  • 相关阅读:
    Echarts入门踩坑记录
    作业帮前端面经
    猿辅导前端面经
    昆仑万维前端面经
    顺丰科技前端面经
    云从科技前端面经
    亿联网络前端面经
    寒武纪前端面经
    纽约州交通事故数据可视化
    Vue中Object和Array数据变化侦测原理
  • 原文地址:https://www.cnblogs.com/fanjp666888/p/10711226.html
Copyright © 2020-2023  润新知