Python如何生成线程

图片[1]-Python如何生成线程-uusu优素-乐高,模型,3d打印,编程

Python中有两个线程模块,分别是thread和threading,threading是thread的升级版。threading的功能更强大。

创建线程有3种方法:

1、thread模块的start_new_thread函数

2、继承自threading.Thread模块

3、用theading.Thread直接返回一个thread对象,然后运行它的start方法

方法一、thread模块的start_new_thread函数

其函数原型:

start_new_thread(function,atgs[,kwargs])

其参数含义如下:

function:在线程中执行的函数名
args:元组形式的参数列表。
kwargs:可选参数,以字典的形式指定参数(即对一些参数进行指定初始化)

代码

importthread

defhello(id=0,interval=2):
foriinfilter(lambdax:x%interval==0,range(10)):
print"Threadid:%d,timeis%d\n"%(id,i)

if__name__=="__main__":

#thread.start_new_thread(hello,(1,2))这种调用形式也是可用的
#thread.start_new_thread(hello,(2,4))

thread.start_new_thread(hello,(),{"id":1})
thread.start_new_thread(hello,(),{"id":2})

方法二:继承自threading.Thread模块

注意:必须重写run函数,而且想要运行应该调用start方法

importthreading

classMyThread(threading.Thread):

def__init__(self,id,interval):
threading.Thread.__init__(self)

self.id=id
self.interval=interval

defrun(self):
forxinfilter(lambdax:x%self.interval==0,range(10)):
print"Threadid:%dtimeis%d\n"%(self.id,x)

if__name__=="__main__":
t1=MyThread(1,2)
t2=MyThread(2,4)

t1.start()
t2.start()

t1.join()
t2.join()
importthreading

defhello(id,times):
foriinrange(times):
print"hello%stimeis%d\n"%(id,i)

if__name__=="__main__":
t=threading.Thread(target=hello,args=("hawk",5))
t.start()
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容