如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,它们对该成员变量是彼此影响的,也就是说一个线程对成员变量的改变会影响到另一个线程。

如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝(即便是同一个对象中的方法的局部变量,也会对每一个线程有一个拷贝),一个线程对该局部变量的改变不会影响到其他线程。

这是因为成员变量和局部变量的生命周期不同,成员变量会在引用本类的对象时创建,随着对象的销毁而销毁,所以多个线程并发访问会彼此影响。而局部变量则是在访问方法时创建,在结束方法时销毁,所以在多线程并发访问方法时,每个线程多会创建各自的局部变量,因而不会有影响。

多线程访问全局变量和局部变量剖析相关推荐

  1. 多线程访问全局变量和局部变量

    如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,它们对该成员变量是彼此影响的,也就是说一个线程对成员变量的改变会影响到另一个线程. 如果一个变量是局部变量,那么每个线程都会有一个 ...

  2. 多线程的全局变量与局部变量

    在多线程开发中,全局变量是多个线程都共享的数据,而局部变量等是各自线程的,是非共享的. from threading import Thread import time classMyThread(T ...

  3. 学习Java的第五天 | 定义方法 | 引用数据类型——类 | 访问权限-修饰符 | 全局变量与局部变量 | toString | 构造方法 | 方法重载

    前面提到的,冒泡排序,二分查找,我们有时候写代码可能不止要查到一种数组的数据,这时候我们就很需要想循环那样的结构,来帮我们解决代码冗余的情况. 我们前面使用的main方法,是一个java程序的入口,我 ...

  4. Linux shell 学习笔记(4)— linux 环境变量(全局变量、局部变量及变量持久化)

    1. 环境变量概念及分类 bash shell 用一个叫作环境变量(environment variable)的特性来存储有关 shell 会话和工作环境的信息(这也是它们被称作环境变量的原因).这项 ...

  5. 【C++】C/C++ 中 static 的用法全局变量与局部变量

    C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...

  6. python函数用法详解2(变量的作用域(全局变量、局部变量)、共享全局变量、函数返回值、函数的参数(位置参数、关键字参数、默认参数、不定长参数)、拆包、交换变量值、引用、可变和不可变类型)

    1. 变量作⽤域         变量作⽤域指的是变量⽣效的范围,主要分为两类:局部变量和全局变量. 局部变量         定义在函数体内部的变量,即只在函数体内部⽣效. def testA(): ...

  7. 零基础入门学习Python(18)-全局变量与局部变量

    函数与过程 函数(function)是有返回值的,即是干完事必须写报告的苦逼 过程(procedure)是简单的.特殊并且没有返回值的,即是完事后拍屁股一走了之的小混蛋 attention:Pytho ...

  8. 窗体 局部变量转换为全局_Unity 热更新解决方案 学习笔记(12)Lua 全局变量和局部变量...

    笔者只是一位刚大三的学生本文章仅为学习笔记,非专业教程,仅供参考和学习交流!!! 如有错误或更好的方案欢迎指出和探讨!!! 全局变量 顾名思义,其生命有效期是全局的,整个lua文件中都可以使用,可以在 ...

  9. python中全局变量和局部变量关键字_Python中全局变量和局部变量的理解与区别

    前言 学过编程的人应该对全局变量与局部变量这两个名词并不陌生,Python也同多数编程语言一样,也有全局变量与局部变量的概念 但是与其他编程语言又有所不同 全局变量与局部变量两者的本质区别就是在于作用 ...

最新文章

  1. 【采用】风控模型评估方法以及大数据风控模型概念
  2. MATLAB求解常微分方程
  3. C++文件操作:fopen / fread / fwrite
  4. 计算机网络传输层和应用层作业,计算机网络传输层作业.doc
  5. python怎么引用多行输入_python调用shell返回两行第二行需要输入密码怎么办?import os os.syst...
  6. HDU5794 - A Simple Chess
  7. 负margin应用案例几则(转载+总结)
  8. flex里播放声音的方法
  9. 始发 终点站 附近几站 全部查询 原来代码基本弃用 数组见上篇文章
  10. Python3----- assert(断言)
  11. Phoenix报错(5) org.apache.hadoop.hive.ql.metadata.HiveException
  12. 【LaTex】Vscode+LaTex模板的使用
  13. 第58章、拍照功能实现(从零开始学Android)
  14. Hadoop与spark性能比较试验
  15. spring security中Authority、Role的区别
  16. 【实验四 循环结构】7-4 sdut-C语言实验-求阶乘(循环结构)
  17. 用GRUB2来实现——坎特伯雷项目 The Canterbury Project
  18. Hadoop Mapreduce组建 核心环形缓冲区 RingBuff 原理及Go实现
  19. JAVA 表格文件简介和解析
  20. 拼多多投放工具有哪些|旭宇同创

热门文章

  1. java在退出前释放资源_Java中如何通过try优雅地释放资源?
  2. 提高vivado的编译速度
  3. bigint最大有多少位_一台 Java 服务器可以跑多少个线程?
  4. 开发文件服务器,易语言开发文件服务器
  5. 硬核项目 | 用Arduino做一个神奇的悬浮灯!
  6. oracle如何处理死锁,Oracle死锁处理实例
  7. python编程财务应用_Python笔记 财务小白的 day6 python编程基础(4)
  8. 怎么调试多线程代码_IDEA的这几个调试的骚操作,用了都说爽!
  9. android高德地图自定义带数字marker图标,自定义图标-点标记-示例中心-JS API 示例 | 高德地图API...
  10. 性能测试常用的软件有哪些,常用的正经CPU测试软件有哪些