63 - 在線程中如何創建和使用全局對象

如何創建和使用在線程內部用的全局對象

'''
threading.local()
local類用於創建一個全局對象,不過改該對象只能在線程內部使用,也就是說嗎,全局是針對一個線程而言的
'''
import threading
import time

a = threading.local()

def worker():
    a.x = 0
    for i in range(20):
        time.sleep(0.01)
        a.x += 1
    print(threading.current_thread(), a.x)


if __name__ == '__main__':
    for i in range(10):
        threading.Thread(target=worker).start()
<Thread(Thread-6, started 24600)> 20
<Thread(Thread-12, started 12432)> 20
<Thread(Thread-10, started 23456)> 20
<Thread(Thread-11, started 16156)> 20
<Thread(Thread-9, started 22104)><Thread(Thread-13, started 11292)> 20<Thread(Thread-7, started 3968)> 20

<Thread(Thread-14, started 15756)> 20
<Thread(Thread-8, started 11416)> 20
<Thread(Thread-15, started 10864)> 20
 20

64 - 你瞭解協程嗎?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章