当前位置: Python基础教程 > 15-多任务-多线程 > 阅读正文

python的threading模块

2021.7.4.   377 次   693字

threading是python的线程模块

创建线程

使用threading.Thread类创建线程, 创建出来的线程, 称为子线程

t = threading.Thread(target=method)

创建线程时, Thread类构造方法的参数是一个方法( 另一种方式是继承Thread)

创建完毕后, 子线程需要调用start方法, 才会运行, 而运行的内容是参数方法中的内容

t.start()

生命周期

子线程的创建与开始, 取决于start方法的调用, 未调用start时只是创建一个Thread类

主线程代码走完后, 主线程不会结束, 会等待子线程结束, 主线程结束, 则整个程序才会结束

线程的结束, 取决于它的代码执行完毕, 即子线程中的代码走完后子线程结束

查看线程

调用threading.enumerate()方法, 会返回一个线程列表

print(threading.enumerate())

通过len方法, 可以查看线程数量

线程的执行, 会抢占cpu, 所以先后执行顺序并不能保证

继承Thread类

继承thread类, 是创建线程的另一种方式, 使用于比较复杂的线程

类中必须定义一个run方法, 继承的name属性, 是线程的名称

import threading
import time


class MyThread(threading.Thread):
    def run(self):
        for i in range(3):
            time.sleep(1)
            msg = str(i) + ", I'm is" + self.name
            print(msg)


if __name__ == "__main__":
    t = MyThread()
    t.start()

在start调用后, 它会自动调用run方法

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群