线程与线程之间数据是共享的

线程与线程数据是共享的

from threading import Thread


def func(lst, name):
    lst.append(66)
    print(name, lst)


if __name__ == '__main__':
    lst = [1, 2]
    p1 = Thread(target=func, args=(lst, "线程1"))
    p2 = Thread(target=func, args=(lst, "线程2"))
    p1.start()
    p2.start()
    p1.join()
    p2.join()
    print("主线程结束", lst)

执行结果:

线程1 [1, 2, 66]
线程2 [1, 2, 66, 66]
主线程结束 [1, 2, 66, 66]

global来演示线程与线程之间数据是共享的

from threading import Thread


def func(name):
    print(f"{name}开始")
    global n
    n = 0
    print(f"{name}结束, n={n}")


if __name__ == '__main__':
    n = 100
    p1 = Thread(target=func, args=("线程1",))
    p2 = Thread(target=func, args=("线程2",))
    p1.start()
    p2.start()
    p1.join()
    p2.join()
    print(f"主线程结束,n={n}")

运行结果:

线程1开始
线程1结束, n=0
线程2开始
线程2结束, n=0
主线程结束,n=0

猜你喜欢

转载自www.cnblogs.com/lilyxiaoyy/p/12384241.html