threading模块
线程简述
线程(轻量级进程)与进程类似,不过它们是在同一个进程下执行的,并共享相同的上下文。可以将它们认为是在一个主进程或"主线程"中并行运行的一些"迷你进程"。
线程包括开始、执行顺序和结束三部分。它有一个指令指针,用于记录运行的上下文。它其他线程运行时,它可以被抢占(中断)和临时挂起(睡眠/加锁)---这种做法叫做让步(yielding)。
多线程的创建
使用Thread类,可以有很多方法来创建线程,其中常用的有:
创建Thread的示例,传给它一个函数;
派生Thread的子类,重新run方法,并创建子类的实例。
示例1:创建Thread的实例,传给它一个函数
from threading import Thread
import time
def test():
print("---hello-world---")
time.sleep(1)
for i in range(5):
#创建线程,线程执行的任务是target指定的函数,如果函数需要传入参数,则可以指定args=(),或者kwargs={}
t = Thread(target=test)
t.start()
运行结果:
---hello-world---
---hello-world---
---hello-world---
---hello-world---
---hello-world---
示例2:使用Thread子类创建线程
import threading
import time
# 自定义类继承threading类
class myThread(threading.Thread):
# 重新run方法
def run(self):
for i in range(3):
time.sleep(1)
msg = "I'm " + self.name+' @ '+s