栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python threading多线程学习笔记记录,并行化提速神器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python threading多线程学习笔记记录,并行化提速神器

在python3中,我们使用threading模块来支持多线程。

  • t1=threading.Thread(target=run,args=("t1",)) 创建一个线程实例
  • t1.start() 启动这个线程实例
  • t1.join() 不加join的话,主线程和子线程完全是并行的,加了join主线程得等这个子线程执行完毕,才能继续往下走。这样才能得到这个程序真正的运行时间。
实例一:最简单的多线程
import threading,time
def run(n):
    print("task  ",n)
    time.sleep(2)

start_time=time.time()
t1=threading.Thread(target=run,args=("t1",))
t2=threading.Thread(target=run,args=("t2",))

t1.start()
t2.start()
t1.join()
t2.join()
print(time.time()-start_time)

打印结果:

task   t1
task   t2
2.0011146068573

 观察实验结果,我们得到原本需要4s左右的执行时间变成了2秒,证明了多线程的高效率。参考文章:python之多线程 - 简书进程的概念:以一个整体的形式暴露给操作系统管理,里面包含各种资源的调用。 对各种资源管理的集合就可以称为进程。线程的概念:是操作系统能够进行运算调度的最小单位。本质上就是一串...https://www.jianshu.com/p/a4aedd66af7c

实例二:获取threading多线程的return返回值
import threading, time

# 定义一个MyThread.py线程类
class MyThread(threading.Thread):
    def __init__(self, func, args=()):
        super(MyThread, self).__init__()
        self.func = func
        self.args = args
    def run(self):
        self.result = self.func(*self.args)
    def get_result(self):
        threading.Thread.join(self)  # 等待线程执行完毕
        try:
            return self.result
        except Exception:
            return None

def run(n):
    print("task  ",n)
    time.sleep(2)
    return "task  "+n

start_time=time.time()
t1 = MyThread(func=run, args=("t1",))
t2 = MyThread(func=run, args=("t2",))

t1.start()
t2.start()
t1.join()
t2.join()
print(time.time()-start_time)
print(t1.get_result())
print(t2.get_result())

 打印结果:

task   t1
task   t2
2.0050857067108154
task  t1
task  t2

参考内容:python获取threading多线程的return返回值_xpt211314的博客-CSDN博客https://blog.csdn.net/xpt211314/article/details/109543014

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/307470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号