我有一些客戶端腳本,它連接到套接字并等待數(shù)據(jù)。在服務(wù)器端有帶有 json 包裝器的 ZeroMQ lib。所以,實(shí)際上,它是一個(gè)json數(shù)據(jù)格式的socket連接。它是來(lái)自 Metatrader 的股票市場(chǎng)數(shù)據(jù)。所以我每分鐘等待一條數(shù)據(jù)線。因?yàn)槲业臅r(shí)間范圍是 M1。問(wèn)題是為什么這個(gè)腳本會(huì)占用 100% 的 cpu?大多數(shù)時(shí)候它應(yīng)該等待數(shù)據(jù)而不執(zhí)行任何操作。我認(rèn)為腳本中可能存在一些錯(cuò)誤。但我還沒(méi)有穿線技巧。請(qǐng)告訴我應(yīng)該在哪里尋找問(wèn)題。
1 回答

幕布斯6054654
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
是你的:
while True:
? ? pass
最后——它的重點(diǎn)是消耗CPU。添加一個(gè)小的睡眠使用time.sleep,CPU 使用率會(huì)降低。或者,如果您只等待線程完成,只需加入它們,它將阻塞,直到它們的執(zhí)行完成。
例如。:
from time import sleep
while True:
? ? sleep(0.1)
或者如果您將線程對(duì)象收集在列表中,您應(yīng)該:
for t in threads:
? ? t.join()
添加回答
舉報(bào)
0/150
提交
取消