python3的threading多线程封装并返回数据
mythead.py #这里是封装的线程 可以返回结果 默认的是不返回结果
#重新封装多线程为了获取返回结果 from threading import Thread class ThreadWithReturnValue(Thread): def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None): Thread.__init__(self, group, target, name, args, kwargs, daemon=daemon) self._return = None def run(self): if self._target is not None: self._return = self._target(*self._args, **self._kwargs) def join(self): Thread.join(self) return self._return
index.py #这是主程序
import time from pandas import * import hashlib from mythead import ThreadWithReturnValue import publicFunction def one(q,p): return q + p def two(q,p): return q + p def index(): allData = [] threads = [] thread1 = ThreadWithReturnValue(target=one, args=(1,2,)) #这里结尾必须要有逗号 threads.append(thread1) thread2 = ThreadWithReturnValue(target=two, args=(10,2,)) #这里结尾必须要有逗号 threads.append(thread2) for t in threads: t.start() for t in threads: result = t.join() try: allData.append(result) except: # raise print(t) print(allData) index()