多线程的创建方式

一、使用函数方式创建多线程

  • 1、创建方式

      import threading
      import time
    
      def hi(num):
              print('hello %d' % num)
              time.sleep(3)
    
      if __name__ == "__main__":
              print('主线程开始')
              # 使用threading模块创建一个多线程,target表示目标函数,args是一个传递参数的元祖
              t1 = threading.Thread(target=hi, args=(10,)) # 实例化一个Thread多线程类
              # 启动一个线程
              t1.start()
    
              t2 = threading.Thread(target=hi, args=(20,))
              t2.start()
              print('主线程结束了')
    

二、使用类的方式创建多线程(创建业务复杂的线程的时候使用类继承的方式)

  • 1、创建方式

      import threading
      import time
    
      class MyThread(threading.Thread):
              def __init__(self, num):
                      super().__init__()
                      self.num = num
    
              def run(self):
                      print('当前的数字: %d' % self.num)
                      time.sleep(3)
    
      class MyThread1(threading.Thread):
    
              def run(self):
                      time.sleep(5)
    
      if __name__ == "__main__":
              print('主线程开始')
              t1 = MyThread(1)
              t2 = MyThread(2)
              t1.start()
              t2.start()
              print('主线程结束')
    
  • 2、关于类的继承方式创建多线程,必须实现run方法

  • 3、如果类中需要传递参数就要写__init__方法,需要使用super()实现父类的__init__方法

三、一般开发中创建多线程

上面方法是一个一个的创建一个一个的启动,如果开多个线程就直接使用range()函数

    ...
    threading_list = []
    for i in range(100):
        t = threading.Thread(target=sub)
            threading_list.append(t)
        t.start()

    # 表示等待全部线程执行完才进行下面的
    for t in threading_list:
        # 下一章节会介绍
        t.join()

    print('程序结束了')    
    ....

results matching ""

    No results matching ""