~玉米糊~
慢慢来,也会很快。 非宁静无以志学,学什么都一样,慢慢打基础,找规律、认真、坚持,其余的交给时间。

如何创建和使用在线程内部用的全局对象

import threading
import time

a = threading.local()
a.x = 0

def worker():

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

for i in range(10):
    threading.Thread(target=worker()).start()

 

<_MainThread(MainThread, started 12832)> 20
<_MainThread(MainThread, started 12832)> 40
<_MainThread(MainThread, started 12832)> 60
<_MainThread(MainThread, started 12832)> 80
<_MainThread(MainThread, started 12832)> 100
<_MainThread(MainThread, started 12832)> 120
<_MainThread(MainThread, started 12832)> 140
<_MainThread(MainThread, started 12832)> 160
<_MainThread(MainThread, started 12832)> 180
<_MainThread(MainThread, started 12832)> 200

 

local类用于创建一个全局对象,不过该对象只能在线程内部使用,也据是说,全局是针对一个线程而言的。

posted on 2022-04-20 15:22  yuminhu  阅读(64)  评论(0编辑  收藏  举报