from threading import Thread
import time
def worker1(num):
num.append(44)
print('in worker1 g_num is', num)
def worker2(num):
time.sleep(1) # 保证worker1线程先执行完
print('in worker2 g_num is', num)
g_num = [11, 22, 33]
t1 = Thread(target=worker1, args=(g_num,))
t1.start()
t2 = Thread(target=worker2, args=(g_num,))
t2.start()
返回:
in worker1 g_num is [11, 22, 33, 44]
in worker2 g_num is [11, 22, 33, 44]
- 在一个进程内的所有线程共享全局变量,能够在不适用其他方式的前提下完成多线程之间的数据共享(这点要比多进程要好)
- 缺点就是,线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)