只是一個小問題。
我使用了大約 6 個執行緒,所有執行緒都每隔幾秒鐘列印一次。有時它們會像這樣列印在同一行上:
OUTPUT
OUTPUT
OUTPUTOUTPUT
OUTPUT
OUTPUT
如您所見,這會留下一個空行和一個雙列印。有什么方法可以確保這不會發生。我看到一句話:
print("OUTPUT", end="\n")
這不起作用,所以我又回到了堆疊溢位!
uj5u.com熱心網友回復:
管理此問題的一種方法是具有用于列印的包裝函式并利用 threading.Lock。下面是一個例子:
from threading import Thread, Lock
import time
LOCK = Lock()
def doprint(msg):
with LOCK:
print(msg)
def athread():
doprint('Thread is starting')
time.sleep(0.1)
doprint('Thread is ending')
threads = []
for _ in range(10):
t = Thread(target=athread)
t.start()
threads.append(t)
for t in threads:
t.join()
這樣,print() 只能被成功獲取鎖的執行緒呼叫
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/384844.html
標籤:Python 多线程 新队 python-多线程
上一篇:存盤器組件中的開關輸入位置
