Python 多线程

zhouhaihua00 2019-12-26

python 提供两种方式来创建线程:

  • 直接调用 threading.Thread 类的构造器函数
  • 继承 threading.Thread 类,重写父类的 run() 方法

1. 直接调用函数

__init__(self,group=None,target=None,name=None,args=(),kwargs=None,daemon=None)

target :指定该线程要调用的目标方法。只传函数名。

args :指定一个元组,以位置参数的形式为 target 指定的函数传入参数。

kwargs :指定一个字典,以关键字参数的形式为 target 指定的函数传入参数。

daemon :指定所构建的线程是否为后台线程。

import threading
import time

def run(n):
    print("task", n)
    time.sleep(2)

start_time = time.time()
for i in range(2):
    t = threading.Thread(target=run, args=(i,))    # 创建线程
    t.start()    # 启动线程

print(time.time()-start_time)

2. 继承 threading.Thread 类

import threading
import time

class MyThread(threading.Thread):
    def __init__(self, n):
        super().__init__()
        self.n = n

    def run(self):
        print("task", self.n)

start_time = time.time()
for i in range(2):
    t = MyThread(i)
    t.start()

print(time.time()-start_time)

相关推荐