Python 线程,独立的线程空间(threading.local())

import threading
import  time

data=threading.local() #为每个线程提供各自独立(不同)的存储空间

t1=lambda  x:x+1
t2=lambda  x:x+"1"

def  printdata(func,x): #func函数,x代表参数
    data.x=x   #data是一个类,动态添加属性,线程独立  data.x在每个线程中是相互独立的
    print(id(data.x)) #不同的地址
    for i  in range(5):
        data.x=func(data.x) #x+1  x+"1"
        print(threading.current_thread().name,data.x)


threading.Thread(target=printdata,args=(t1,1)).start()
threading.Thread(target=printdata,args=(t2,"1")).start()

你可能感兴趣的:(Python)