Python提供了thread,threading模块对多线程编程提供支持。threading模块是对thread模块的封装。多数情况用threading模块进行多线程编程。本文主要介绍Python创建线程的几种方式。
1.使用thread模块创建线程
thread模块提供了start_new_thread函数,用来创建线程。start_new_thread成功创建线程后会返回线程标识。其函数原型如下:
thread.start_new_thread(function,args[,kwargs])
- function:线程中执行的函数名
- args:元组形式的参数列表
kwargs:可选参数,以字典形式指定参数
以下是代码示例
import thread
def run(n):
for i in range(n):
print i
thread.start_new_thread(run,(5,))`
使用threading模块创建线程
通过继承threading模块中的thread创建新类,重载run方法后,可以用start方法创建线程。线程创建后将运行run方法。
代码示例
import threading,time
class Myhread(threading.Thread): #继承thread类
def __init__(self,id): #定义初始化方法
threading.Thread.__init__(self) #调用父类的初始化方法
self.id = id
def run(self): #重载run方法
for i in range(self.id):
print i
t = Myhread(10)
t.start()
除了通过继承threading.Thread创建类以外,还可以使用thread.Thread直接在线程中运行函数。
代码示例
import threading
def run(x,y):
for i in range(x,y):
print i
t = threading.Thread(target=run,args=(1,9))
t.start()