php是最好的语言

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()


作者:xTao 分类:LNMP 浏览:2458 评论:0