python知识点100篇系列(16)

第一种方法最常用:自定义线程类,继承Thread类新建自定义线程类继承线程类中的run方法和join方法; 重写join方法,在调用join方法时返回结果;伪代码如下:代码语言:python代码运行次数:0运行复制from threadin

python知识点100篇系列(16)

第一种方法最常用:自定义线程类,继承Thread类

新建自定义线程类继承线程类中的run方法和join方法; 重写join方法,在调用join方法时返回结果;

伪代码如下:

代码语言:python代码运行次数:0运行复制
from threading import Thread

def foo(someting):
    return f'{someting} is result'

class returnValueThread(Thread):

    def __init__(self,someargs):
        ''''''
        Thread.__init__(self)
        self.someargs = someargs

    def run(self):
        ''''''
        self.result = foo(someting=self.someargs)

    def join(self):
        super().join()
        return self.result

mythread = returnValueThread('test')
mythread.start()
result = mythread.join()
print(result)

第二种方法可以使用python中内置的concurrent.futures库:

Python 的标准库 concurrent.futures 直接获取线程的返回值;代码量更少,推荐使用此方法;

伪代码如下:

代码语言:python代码运行次数:0运行复制
def futuresReturnValue():
    ''''''
    import concurrent.futures
    with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
        threads = []
        for i in range(10):  # 多个任务
            future = executor.submit(foo, f"agrs_{i}")
            threads.append(future)

        for future in concurrent.futures.as_completed(threads):  # 并发执行
            print(future.result())

futuresReturnValue()

运行结果如下:

发布者:admin,转转请注明出处:http://www.yc00.com/web/1755036848a5230496.html

相关推荐

  • python知识点100篇系列(16)

    第一种方法最常用:自定义线程类,继承Thread类新建自定义线程类继承线程类中的run方法和join方法; 重写join方法,在调用join方法时返回结果;伪代码如下:代码语言:python代码运行次数:0运行复制from threadin

    1月前
    200

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信