python中调用线程的方法
不懂python中调用线程的方法?其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。
创新互联建站制作网站网页找三站合一网站制作公司,专注于网页设计,成都网站制作、网站建设,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为上千服务,创新互联建站网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!
Python调用线程有两种情况,一种是在主线程中直接调用,还一种是直接在其他方法中调用线程
在传递参数的方式上有所区别,两种调用方法如下
1. 主进程中直接调用线程:
from threading import Thread import time def sayhi(name,input,number): for i in range(1,10): if number == "线程号1": time.sleep(2) print("这是线程号:%s - %s say hello %s - %s" % (number,name, str(i),input)) else : time.sleep(1) print("线程号:%s - %s say hello %s - %s 休息1秒" % (number,name, str(i),input)) if __name__ == '__main__': for i in range(1,3): t = Thread(target=sayhi, args=('mike','to you',"线程号"+str(i) )) t.start() print("主线程结束")
2.在方法中调用线程:
在方法中调用线程的时候,如果不想另外写一个class,也不想用self参数,
在写Thread(target=Th3, args=(input,))的时候,记得args数的最后中加一个“逗号”,这样表明你传的是一个数据元组
否则会报“takes 1 positional argument but 2 were given”这种错误,因为传入的参数数量识别时出现了问题
# -*- coding: utf-8 -*- import time from threading import Thread def doWork(input): global interval try: print("begin") if "DERNAV" in input.upper(): t = Thread(target=Th2, args=(input,)) t.start() elif "PBD9008" in input.upper(): t = Thread(target=Th3, args=(input,)) t.start() except Exception as e : print(e) def Th2(input): for i in range(1,10): print(input+"_"+time.strftime('%Y.%m.%d %H:%M:%S')) time.sleep(1) def Th3(input): for i in range(1,10): print(input+"_"+time.strftime('%Y.%m.%d %H:%M:%S')) time.sleep(2) def run(interval): while True: try: doWork("PBD9008") doWork("DERNAV") time_remaining = interval - time.time() % interval time.sleep(time_remaining) except Exception as e: print(e) if __name__ == '__main__': global interval interval = 300 text = run(interval)
感谢你能够认真阅读完这篇文章,希望小编分享python中调用线程的方法内容对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,遇到问题就找创新互联,详细的解决方法等着你来学习!
标题名称:python中调用线程的方法
标题网址:http://pwwzsj.com/article/ihjejc.html