【线程 04】threadloca 解决数据混乱问题

import threading

num = 10
local = threading.local()


def run(x, n):
    x = x + n
    x = x - n


def func(n):
    local.x = num
    for i in range(10000):
        run(local.x, n)
    print('%s-%d' % (threading.current_thread().name, local.x))


if __name__ == '__main__':
    t1 = threading.Thread(target=func, args=(6,))
    t2 = threading.Thread(target=func, args=(9,))
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    print('num', num)

# 为每个线程绑定一个数据库连接,HTTP请求,用户身份信息等
# 这样一个线程的所有调用到的处理函数都可以非常方便地访问这些资源
发布了96 篇原创文章 · 获赞 103 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_38114487/article/details/105308928