新聞中心
Python調(diào)用線程有兩種情況,一種是在主線程中直接調(diào)用,還一種是直接在其他方法中調(diào)用線程

創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站設(shè)計制作、做網(wǎng)站、網(wǎng)頁設(shè)計開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗,各類網(wǎng)站都可以開發(fā),高端網(wǎng)站設(shè)計,公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計,建網(wǎng)站費用,建網(wǎng)站多少錢,價格優(yōu)惠,收費合理。
在傳遞參數(shù)的方式上有所區(qū)別,兩種調(diào)用方法如下
1. 主進程中直接調(diào)用線程:
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("主線程結(jié)束")2.在方法中調(diào)用線程:
在方法中調(diào)用線程的時候,如果不想另外寫一個class,也不想用self參數(shù),
在寫Thread(target=Th2, args=(input,))的時候,記得args數(shù)的最后中加一個“逗號”,這樣表明你傳的是一個數(shù)據(jù)元組
否則會報“takes 1 positional argument but 2 were given”這種錯誤,因為傳入的參數(shù)數(shù)量識別時出現(xiàn)了問題
# -*- 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) 分享標題:創(chuàng)新互聯(lián)Python教程:python中怎么調(diào)用線程
本文來源:http://www.dlmjj.cn/article/dpseheh.html


咨詢
建站咨詢
