新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python中怎么調用線程
Python調用線程有兩種情況,一種是在主線程中直接調用,還一種是直接在其他方法中調用線程

創(chuàng)新互聯(lián)專注于網(wǎng)站建設,為客戶提供網(wǎng)站設計制作、做網(wǎng)站、網(wǎng)頁設計開發(fā)服務,多年建網(wǎng)站服務經(jīng)驗,各類網(wǎng)站都可以開發(fā),高端網(wǎng)站設計,公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設計,建網(wǎng)站費用,建網(wǎng)站多少錢,價格優(yōu)惠,收費合理。
在傳遞參數(shù)的方式上有所區(qū)別,兩種調用方法如下
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參數(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) 網(wǎng)站題目:創(chuàng)新互聯(lián)Python教程:python中怎么調用線程
鏈接分享:http://m.fisionsoft.com.cn/article/dpseheh.html


咨詢
建站咨詢
