![图片[1]-python中怎么调用线程-uusu优素-乐高,模型,3d打印,编程](http://uusucn.zbbe.cn/wp-content/uploads/2024/01/5e730ca302651455.jpg)
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


















































暂无评论内容