Python threading.local() 解說
我們都知道多個執行緒(thread)之間會共用 Process 的記憶體,那你覺得以下範例程式的執行結果會是什麼呢?這是 2 個執行緒分別做 +1 與 -1 運算各 100,000
次的 Python 程式:
import threading
def count(thread_name, step=1):
global v
for i in range(0, 100000):
v += 1 * step
print(f'{thread_name} -> ', v, flush=True)
v = 0
t1 = threading.Thread(target=count, args=('t1', 1, ))
t2 = threading.Thread(target=count, args=('t2', -1, ))
t1.start()
t2.start()
t1.join()
t2.join()
這段範例程式的執行結果,就跟本文要解說的 threading.local() 有關。
Posted on Sep 4, 2023 in Python 程式設計 - 高階 by Amo Chen ‐ 3 min read