Python多线程编程——创建线程的两个方法

之前的一篇文章:Python多线程编程——多线程基础介绍,主要介绍了线程的基本知识,以及使用Python创建线程的一个简单的方法。
在之前的一篇文章的基础之上,给大家介绍使用Python进行多线程编程的时候,创建多个线程的两个方法。

一、使用函数来创建线程

使用函数来创建线程,顾名思义,就是我们把要完成的任务封装成一个个函数,然后使用 threading 库中的 threading.Thread(target=) 函数来创建线程,其中传给target的就是我们创建的函数。

比如我们要创建两个线程,一个线程用来执行 写字 这个任务,一个线程用来执行 绘画 这个任务,那么就可以将这两个任务封装成函数,然后再进行创建进程。示例代码如下:

import time
import threading


def writing():
    print("我正在写字")
    time.sleep(1)  # 沉睡1秒,方便我们看到执行的过程


def drawing():
    print("我正在绘画")
    time.sleep(1)  # 沉睡1秒,方便我们看到执行的过程


def main():
    t1 = threading.Thread(target=writing)  # 创建线程t1
    t2 = threading.Thread(target=drawing)  # 创建线程t2
    t1.start()  # 开始线程
    t2.start()  # 开始线程
    time.sleep(1)  # 沉睡1秒,方便我们看到执行的过程


if __name__ == '__main__':
    main()
    main()
    main()

二、使用类来创建线程

除了使用函数来创建线程外,我们还可以使用类来创建线程。而且在实际的应用中,我们大多数情况下是使用类来创建线程,这样更好的体现出封装的概念。

与上面一样,我们要创建两个线程,分别用来执行 写字 任务和 绘画 任务。我们就可以创建写字和绘画的类。注意,这两个类是继承自 threading.Thread 类的,类创建好之后,我们要重写其中的 run 函数,把我们需要完成的动作写在 run 函数里面。

最后使用类来创建线程,示例代码如下:

import time
import threading


# 创建继承自threading.Thread的类,并重写其中的run函数
class Writing(threading.Thread):
    def run(self):
        print("我正在写字")


# 创建继承自threading.Thread的类,并重写其中的run函数
class Drawing(threading.Thread):
    def run(self):
        print("我正在绘画")


def main():
    t1 = Writing()  # 使用类来创建线程
    t2 = Drawing()  # 使用类来创建线程
    t1.start()
    t2.start()

    time.sleep(1)


if __name__ == '__main__':
    main()
    main()
    main()

三、最终的效果展示

猜你喜欢

转载自blog.csdn.net/fengzhen8023/article/details/83181417