Python多线程创建详解:函数与类两种实现方式及核心API

陆遥
陆遥
发布时间:2026-10-13 | 1人浏览过
原创

本文详解Python中创建多线程的两种核心方式:通过函数直接实例化Thread类,以及继承Thread类并覆写run方法。文章深入解析了Thread构造函数的参数用法,并系统梳理了start、join、is_alive、daemon等常用线程控制API,帮助开发者掌握Python并发编程的基础技能。

大家好,欢迎来到并发编程系列的第二篇内容。

本篇内容侧重于基础知识的梳理,旨在帮助新手读者无障碍地理解后续复杂概念。通过巩固基础,大家能够更顺畅地跟随我的思路,深入理解后续的进阶文章。

本文目录如下:

  • 掌握使用函数创建多线程的方法
  • 掌握使用类创建多线程的方法
  • 多线程开发中必学的关键函数解析

经过总结,Python中创建多线程主要包含以下两种途径:

  • 利用函数直接创建
  • 利用类继承创建

接下来,我们将深入解析多线程的具体实现细节。

使用函数创建多线程

一、掌握使用函数创建多线程

在Python3环境中,系统内置了threading.Thread模块,该模块提供了便捷的接口,使我们能够轻松创建多线程应用。

调用threading.Thread()构造函数时,通常涉及两个关键参数:

  • 目标函数名(target):指定线程后台执行的具体函数,由开发者自定义。注意此处仅传递函数名,切勿添加括号。
  • 目标函数参数(args):以元组形式传递目标函数所需的参数。若目标函数无需参数,则可省略此参数。

具体示例如下:


 import time
 from threading import Thread
 
 # 自定义线程函数。
 def main(name="Python"):
   for i in range(2):
     print("hello", name)
     time.sleep(1)
# 创建线程01,不指定参数
thread_01 = Thread(target=main)
# 启动线程01
thread_01.start()


# 创建线程02,指定参数,注意逗号
thread_02 = Thread(target=main, args=("MING",))
# 启动线程02
thread_02.start()

运行上述代码后,控制台将输出以下结果:

hello Python hello MING hello Python hello MING

这种实现方式是否非常简单?别急,接下来介绍的类实现方式同样简洁。

使用类创建多线程

二、掌握使用类创建多线程

相较于函数方式,通过类来创建线程的实现逻辑稍显复杂。

首先,我们需要自定义一个类,该类需满足以下两点要求:

  • 必须继承threading.Thread父类;
  • 必须覆写(override)run方法。

这里的run方法功能与前述线程函数类似,用于编写具体的业务逻辑代码。当调用start()方法启动线程后,系统会自动执行run方法。

参考以下示例代码:

为了便于对比,run函数内部复用了前述main函数的逻辑。


 import time
 from threading import Thread
 
 class MyThread(Thread):
   def __init__(self, name="Python"):
     # 注意,super().__init__() 一定要写
     # 而且要写在最前面,否则会报错。
     super().__init__()
     self.name=name

  def run(self):
    for i in range(2):
      print("hello", self.name)
      time.sleep(1)

if __name__ == '__main__':
  # 创建线程01,不指定参数
  thread_01 = MyThread()
  # 创建线程02,指定参数
  thread_02 = MyThread("MING")

  thread_01.start()
  thread_02.start()

最终运行结果与函数方式完全一致:

hello Python hello MING hello Python hello MING

Thread类常用方法解析

三、多线程开发中必学的关键函数解析

学习完上述两种线程创建方式后,你可能会觉得实现过程异常简单,毫无难度。

然而事实并非如此。前文示例为了便于理解,仅使用了最简化的代码逻辑。在实际生产环境中,多线程运行期间可能会遇到诸多复杂问题,只是目前尚未深入触及这些难点。

不过无需担忧,在后续章节中,我将带领大家逐一探讨这些潜在难题及其解决方案。

工欲善其事,必先利其器。我们首先需要熟悉Python提供的Thread类所具备的常用方法和属性,明确其具体功能。掌握这些基础知识,将有助于我们在后续的高级学习中更加得心应手。

经过归纳,Thread类常用的方法主要包括以下几项:


 t=Thread(target=func)
 
 # 启动子线程
 t.start()
 
 # 阻塞子线程,待子线程结束后,再往下执行
 t.join()
 
 # 判断线程是否在执行状态,在执行返回True,否则返回False
t.is_alive()
t.isAlive()

# 设置线程是否随主线程退出而退出,默认为False
t.daemon = True
t.daemon = False

# 设置线程名
t.name = "My-Thread"

至此,Python线程的基础知识介绍完毕。

以上就是本文的全部内容,希望能为各位的学习提供有益帮助,也欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表