MST

星途 面试题库

面试题:Python中Thread类的基本使用

请简述Python threading模块中Thread类创建线程的两种常见方式,并给出简单代码示例,同时说明如何启动和等待线程结束。
20.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

方式一:继承Thread类

  1. 简述:定义一个类继承自threading.Thread类,并重写run方法,run方法中的代码就是线程要执行的内容。
  2. 代码示例
import threading


class MyThread(threading.Thread):
    def run(self):
        print(f"线程 {self.name} 正在运行")


if __name__ == "__main__":
    thread = MyThread()
    # 启动线程
    thread.start()
    # 等待线程结束
    thread.join()

方式二:创建Thread类实例并传入执行函数

  1. 简述:创建threading.Thread类的实例时,将需要在线程中执行的函数作为参数传入,并可以传入函数所需的参数。
  2. 代码示例
import threading


def my_function():
    print(f"线程 {threading.current_thread().name} 正在运行")


if __name__ == "__main__":
    thread = threading.Thread(target=my_function)
    # 启动线程
    thread.start()
    # 等待线程结束
    thread.join()

启动和等待线程结束

  1. 启动线程:通过调用线程对象的start方法来启动线程,此时线程进入就绪状态,等待CPU调度执行run方法(对于继承方式)或目标函数(对于传入函数方式)。
  2. 等待线程结束:调用线程对象的join方法,主线程会阻塞,直到该线程执行完毕。join方法可以传入一个timeout参数,用于设置等待的最长时间。