知行编程网知行编程网  2023-01-12 07:30 知行编程网 隐藏边栏  13 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python中怎么调用线程的相关知识,包括python 线程同步,以及python创建线程的方法这些编程知识,希望对大家有参考作用。

如何在python中调用线程

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.在方法中调用线程:

在方法中调用线程时,如果不想再写一个类,又不想使用self参数,

在写Thread(target=Th2, 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=Th1, args=(input,))
            t.start()
        elif "PBD9008" in input.upper():
            t = Thread(target=Th2, args=(input,))
            t.start()
    except Exception as e :
        print(e)
 
def Th1(input):
    for i in range(1,10):
        print(input+"_"+time.strftime('%Y.%m.%d %H:%M:%S'))
        time.sleep(1)
    
def Th2(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)

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享