我正在嘗試構建一個通過 UDP 發送資料并有一個網站進行設定的 Python 程式。對于這個程式,我需要一個腳本來運行燒瓶網路服務器和一個腳本來同時提取資料。我想使用執行緒同時運行行程(Flask 服務器和資料拉/發送部分)。因為我需要一直運行提取資料的部分,所以我做了“While True:”,所以它一直在運行但是當我啟動我的執行緒時,只有提取資料的執行緒正在運行。我認為問題在于,我并沒有真正同時運行 2 個執行緒。但我認為使用執行緒應該可以同時運行燒瓶執行緒和資料執行緒。但我無法讓它作業,我無法找出問題所在。
這是我試圖啟動兩個執行緒的檔案:
import threading
import time
import mainl
import webserver
class mydata(threading.Thread):
def __init__(self, iD, name):
threading.Thread.__init__(self)
self.iD = iD
self.name = name
def run(self):
mainl.mainloop()
class mywebserver(threading.Thread):
def __init__(self, iD, name):
threading.Thread.__init__(self)
self.iD = iD
self.name = name
def run(self):
webserver()
t1 = mydata(1, "t1")
t2 = mywebserver(2, "t2")
t2.start()
t1.start()
這是提取資料的檔案,它應該始終運行,這就是我使用“While True:”的原因:
def mainloop():
while True:
import data1
import data2
import data3
###UDP###
ip_adress = "192.168.178.150"
udp_port = 8888
text = ""
data1 = data1.daten()
data2 = data2.daten()
data3 = data3.daten()
# print("Coin STR", coin)
time.sleep(3)
text = "data1 data2 data3"
send.senden(ip_adress, udp_port, text)
uj5u.com熱心網友回復:
我發現了問題,匯入中的回圈在匯入時開始了。所以程式沒有繼續。
現在我在主函式中運行匯入。
有關更多資訊,我可以推薦: https ://www.guru99.com/learn-python-main-function-with-examples-understand-main.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/417323.html
標籤:
下一篇:C#中跨越后臺執行緒的等待運算子
