为什么线程之间共享全局变量?

  解答:因为多线程是在同一个进程中所以可以共享全局变量。

  

 

示例1:不加join方法的效果:

根据CPU的调度的不同读取和写入两个任务会分别对全局变量进行操作导致期望的结果不能满足。

 

from threading import *
from time import *


g_list = []


def add_data():
    for i in range(3):
        # 修改全局变量的值,因为列表是可变类型,在原有内存地址上新增数据,所以不需要声明global
        g_list.append(i)
        print("add:", i)
        sleep(0.2)


def read_data():
    print("读取数据完成:",g_list)


if __name__ == '__main__':

    t1 = Thread(target=add_data)
    t2 = Thread(target=read_data)

    t1.start()
    t2.start()
View Code

相关文章:

  • 2021-09-16
  • 2021-09-16
  • 2021-09-16
  • 2022-12-23
  • 2022-01-01
  • 2021-09-16
  • 2021-09-16
猜你喜欢
  • 2022-01-01
  • 2021-01-19
  • 2021-08-07
  • 2022-01-01
  • 2021-12-04
相关资源
相似解决方案