python中怎么调用线程

图片[1]-python中怎么调用线程-uusu优素-乐高,模型,3d打印,编程

Python调用线程有两种情况,一种是在主线程中直接调用,还一种是直接在其他方法中调用线程

在传递参数的方式上有所区别,两种调用方法如下

1. 主进程中直接调用线程:

fromthreadingimportThread
importtime


defsayhi(name,input,number):
foriinrange(1,10):
ifnumber=="线程号1":
time.sleep(2)
print("这是线程号:%s-%ssayhello%s-%s"%(number,name,str(i),input))
else:
time.sleep(1)
print("线程号:%s-%ssayhello%s-%s休息1秒"%(number,name,str(i),input))

if__name__=='__main__':
foriinrange(1,3):
t=Thread(target=sayhi,args=('mike','toyou',"线程号"+str(i)))
t.start()
print("主线程结束")

2.在方法中调用线程:

在方法中调用线程的时候,如果不想另外写一个class,也不想用self参数,

在写Thread(target=Th2, args=(input,))的时候,记得args数的最后中加一个“逗号”,这样表明你传的是一个数据元组

#-*-coding:utf-8-*-
importtime
fromthreadingimportThread
defdoWork(input):
globalinterval
try:
print("begin")
if"DERNAV"ininput.upper():
t=Thread(target=Th1,args=(input,))
t.start()
elif"PBD9008"ininput.upper():
t=Thread(target=Th2,args=(input,))
t.start()
exceptExceptionase:
print(e)

defTh1(input):
foriinrange(1,10):
print(input+"_"+time.strftime('%Y.%m.%d%H:%M:%S'))
time.sleep(1)

defTh2(input):
foriinrange(1,10):
print(input+"_"+time.strftime('%Y.%m.%d%H:%M:%S'))
time.sleep(2)
defrun(interval):
whileTrue:
try:
doWork("PBD9008")
doWork("DERNAV")
time_remaining=interval-time.time()%interval
time.sleep(time_remaining)
exceptExceptionase:
print(e)

if__name__=='__main__':
globalinterval
interval=300
text=run(interval)
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容