python 多线程共享全局变量的问题
2020-02-12 12:05
253 查看
多线程都是在同一个进程中运行的。因此在进程中的全局变量所有线程都是可共享的。
这就造成了一个问题,因为线程执行的顺序是无序的。有可能会造成数据错误。
直白理解:也就是多线程执行的时候,同时对一个全局变量进行操作(例如同时进行赋值操作,并且赋值还不同),就可能出现数据错误.
import threading VALUE = 0 def add_value(): global VALUE # 全局变量在函数体中使用的时候,需要申明 for x in range(1000): VALUE += 1 print('value: %d' % VALUE) def main(): for x in range(2): t = threading.Thread(target=add_value) t.start() if __name__ == '__main__': main()
两个线程都是对全局变量VALUE进行加1运算,在同一进程中两个线程进行的VALUE加1运算同时执行时就会出错.
在上面程序中VALUE加1执行的次数较少时,出现同时执行的情况一般不会出现,但是,当执行次数较多时(1000000次),
就会出现同时进行VALUE加1运算,从而造成全局变量VALUE数据出错.
转载于:https://www.cnblogs.com/S-Evildoer/p/10702166.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 【python】多线程共享全局变量问题
- 多线程-共享全局变量(python版)
- java多线程全局变量共享问题
- python中的多线程-共享全局变量
- python多线程-共享全局变量
- Java多线程共享全局变量问题
- Python3-多线程共享全局变量
- python自定义线程类的使用与共享全局变量的问题
- 浅谈Python 多进程默认不能共享全局变量的问题
- day 0807 多线程—共享全局变量问题
- linux动态链接库全局变量共享问题&DLL共享数据段
- python中如何在不同文件间共享全局变量
- python unittest TestCase间共享数据(全局变量的使用)
- python全局变量被覆盖的问题
- 关于全局变量,如何被多个.c文件共享问题
- python通过配置文件共享全局变量的实例
- linux动态链接库全局变量共享问题&DLL共享数据段
- c++多线程操作全局变量的锁的问题
- python在不同文件之间共享全局变量方案的探讨
- 多线程在共享变量中出现的问题