方式一:继承Thread类
- 简述:定义一个类继承自
threading.Thread
类,并重写run
方法,run
方法中的代码就是线程要执行的内容。
- 代码示例:
import threading
class MyThread(threading.Thread):
def run(self):
print(f"线程 {self.name} 正在运行")
if __name__ == "__main__":
thread = MyThread()
# 启动线程
thread.start()
# 等待线程结束
thread.join()
方式二:创建Thread类实例并传入执行函数
- 简述:创建
threading.Thread
类的实例时,将需要在线程中执行的函数作为参数传入,并可以传入函数所需的参数。
- 代码示例:
import threading
def my_function():
print(f"线程 {threading.current_thread().name} 正在运行")
if __name__ == "__main__":
thread = threading.Thread(target=my_function)
# 启动线程
thread.start()
# 等待线程结束
thread.join()
启动和等待线程结束
- 启动线程:通过调用线程对象的
start
方法来启动线程,此时线程进入就绪状态,等待CPU调度执行run
方法(对于继承方式)或目标函数(对于传入函数方式)。
- 等待线程结束:调用线程对象的
join
方法,主线程会阻塞,直到该线程执行完毕。join
方法可以传入一个timeout
参数,用于设置等待的最长时间。