您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python多线程即相关理念详解

51自学网 2022-02-21 10:46:57
  python
这篇教程Python多线程即相关理念详解写得很实用,希望能帮到您。

一、什么是线程?

线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程。车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线。所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。

总结进程与线程区别:

'''进程:资源单位线程:执行单位线程才是真正干活的人,干活中需要的资源由线程所在进程提供每个进程肯定自带一个线程每个进程内可创建多个线程''''''开进程:    申请空间    拷贝代码    消耗资源大开线程:    同一个进程内创建多个线程,无需上述两种操作,消耗资源相对较小'''

多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,多个控制线程共享该进程的地址空间,相当于一个车间内有多条流水线,都共用一个车间的资源。

二、开启线程的两种方式

1、方式1

from threading import Threadimport time# 方法一def task(name):    print('%s is running' % name)    time.sleep(1)    print('%s is over' % name)# 开启线程不需要在main下面执行代码,直接书写就可以# 但是习惯性的将启动命令写在main下面t = Thread(target=task, args=('egon',))t.start()  # 创建线程的开销非常小,几乎是代码一执行就已经创建了print('主')'''

运行结果:
egon is running

egon is over
'''

2、方式2

from threading import Threadclass MyThread(Thread):    def __init__(self, name):        # 重写了别人的方法,又不知道别人的方法里有啥,就调用父类的方法        super().__init__()        self.name = name    def run(self):        print('%s is running' % self.name)        time.sleep(1)        print('%s is over' % self.name)if __name__ == '__main__':    t = MyThread('egon')    t.start()    print('主')'''

运行结果:
egon is running

egon is over
'''

三、线程对象的jion方法()

看过我讲解进程文章的小伙伴想必都知道jion的功能,线程的jion方法于进程的jion方法功能类似-等待一个线程执行完毕后再执行下一个线程

from threading import Threaddef task(name):    print('%s is running' % name)    time.sleep(1)    print('%s is over' % name)if __name__ == '__main__':    t=Thread(target=task,args=('egon',))    t.start()    t.join()# 主线程等待子线程运行结束后再执行    print('主')


深入学习Python+Opencv常用四种图像处理操作
Python调用百度AI实现颜值评分功能

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。