线程间共享全局变量

线程间共享全局变量

多个线程都是再同一个进程中,使用的都是这个进程的资源,所以多线程间是共享全局变量的。

示例:

import threading

# 全局变量
import time

my_list = []

# 写入数据
def write_data():
    for i in range(3):
        print(f'add: {i}')
        my_list.append(i)
    print(f'write: {my_list}')

# 读取数据
def read_data():
    print(f'read: {my_list}')

if __name__ == '__main__':
    # 创建子线程
    write_thread = threading.Thread(target=write_data)
    read_thread = threading.Thread(target=read_data)

    # 启动子线程
    write_thread.start()
    time.sleep(3)
    read_thread.start()

输出结果

add: 0
add: 1
add: 2
write: [0, 1, 2]
read: [0, 1, 2]

Process finished with exit code 0