2022年 11月 9日

python 开启多线程的两种方式

1. 方法一

import time
from threading import Thread


def func(name):
    print(f"{name}开始")
    time.sleep(0.5)
    print(f"{name}结束")


if __name__ == '__main__':
    t1 = Thread(target=func, args=("线程1",))
    t2 = Thread(target=func, args=("线程2",))
    t1.start()
    t2.start()
    print("主线程结束")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
线程1开始
线程2开始
主线程结束
线程1结束
线程2结束
  • 1
  • 2
  • 3
  • 4
  • 5

2. 方法二

import time
from threading import Thread


class MyThread(Thread):
    def __init__(self, name):  # 可以通过初始化来传递参数
        super(MyThread, self).__init__()
        self.name = name

    def run(self):  # 必须有的函数
        print(f"{self.name}开始")
        time.sleep(0.2)
        print(f"{self.name}结束")


if __name__ == '__main__':
    t1 = MyThread("线程1")  # 创建第一个线程,并传递参数
    t2 = MyThread("线程2")  # 创建第二个线程,并传递参数
    t1.start()  # 开启第一个线程
    t2.start()  # 开启第二个线程
    print("主线程执行结束,子线程是依附于主线程存在的,所以,子线程都结束后,主线程才真正的结束。")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
线程1开始
线程2开始
主线程执行结束,子线程是依附于主线程存在的,所以,子线程都结束后,主线程才真正的结束。
线程1结束
线程2结束
  • 1
  • 2
  • 3
  • 4
  • 5