当前位置: 首页 > wzjs >正文

ppt模板大全免费下载网站百度站长

ppt模板大全免费下载网站,百度站长,凡科做的网站被举报了会怎么样,赣州万图网络科技有限公司基本定义 局部变量 是指在函数或代码块内部定义的变量,其作用范围仅限于定义它的函数或代码块内部 线程安全 是指多个线程访问共享资源时,不会破坏资源的完整性 示例1 public void example() {Object obj new Object();}上述创建对象的代码中,obj就是…

基本定义

局部变量 是指在函数或代码块内部定义的变量,其作用范围仅限于定义它的函数或代码块内部
线程安全 是指多个线程访问共享资源时,不会破坏资源的完整性

示例1

    public void example() {Object obj = new Object();}

上述创建对象的代码中,obj就是变量,如果在方法中创建这个对象那么obj就属于局部变量,obj和右边的Object()是两个东西,obj是变量,由于创建的是引用类型,所以obj存储在栈中的是地址值,这个内存地址指向堆中的Object()实例,又由于创建的地方在方法内,所以其他线程无法共享obj变量,每个进入该方法的线程都会重复创建只属于自己的Object()对象。
结论

  1. obj变量属于局部变量,无法被其他线程修改
  2. obj引用的new Object()对象属于只能通过当前线程的局部变量才能访问到的对象

所以上述代码总是线程安全的

示例2

@Slf4j
public class Test {public List<Integer> list = null;public void k1(List<Integer> argList) {log.info("k1接收到的list哈希{}",argList.hashCode());argList.forEach(System.out::println);}public static void main(String[] args) throws InterruptedException {Test test = new Test();test.list = new Vector<>(); // 集合1test.list.add(998);test.list.add(999);log.info("调用k1前的list哈希{}",test.list.hashCode());new Thread(() -> {test.k1(test.list);}).start();test.list = new Vector<>(); // 集合2test.list.add(1);test.list.add(2);log.info("调用k1后的list哈希{}",test.list.hashCode());}
}

如上代码所示,k1方法中的参数argList也是局部变量,但是在main方法中调用k1的动作是由其他线程完成的,所以这里k1实际接收到的参数就是不确定的,不能确定新启动的线程进入k1方法时传入的集合是1还是2,不过可以确定的是,一旦进入k1方法,不管实际传入的集合是1还是2,这个集合就已经确定了(也就是argList变量持有的引用地址),即使后续main方法中再怎么修改test.list的引用也没关系,因为k1方法中的局部变量argList已经持有了进入该方法时传入的集合的引用地址。
重点提示
虽然argList变量是线程安全的(argList变量会一直指向传入该方法的实例的内存地址,对于argList变量的修改也只能在k1方法中实现),但是对于argList变量指向的实例内容则不做保证,因为在k1方法执行过程中argList引用的集合可能被其他线程添加或删除元素,虽然本例中使用的是线程安全的Vector,但是大部分业务代码可能都是使用ArrayList集合(非线程安全集合),所以还是需要注意。
结论:

  1. k1方法的argList变量属于局部变量
  2. argList变量引用的List不属于【只能通过当前线程的局部变量才能访问到的对象】,所以对于引用的List来说,我们需要自己保证线程安全
http://www.dtcms.com/wzjs/79559.html

相关文章:

  • 深圳建设厅网站首页seo的优化技巧和方法
  • 做视频网站怎么赚钱seo赚钱培训课程
  • 做游戏网站的分析新手怎么做网络推广
  • wordpress站点的url广告投放方案
  • 企业网站分析报告免费网站或软件
  • 网站自助建设平台有哪些互联网品牌的快速推广
  • 做网站推广和网络推广网站空间费用一年多少
  • 做网站有回扣拿吗网站流量查询工具
  • 做网站分辨率一般多少百度官方网站首页
  • 手机实用网站百度论坛首页
  • 骏驰网站建设搜索引擎营销的特点是什么
  • 洛阳建设三轮网站网络推广
  • 合肥高端网站建设设计营销策划的重要性
  • 男人和女人做av网站百度指数与百度搜索量
  • 宣讲家网站两学一做心得体会网站开发流程的8个步骤
  • 用网站做平台外贸出口平台网站
  • 国外做调灵风暴的网站如何制作一个网页网站
  • dedecms手机网站仿制软件编程培训学校排名
  • 做微信链接的网站厦门seo外包服务
  • 文章如何wordpressseo营销推广服务公司
  • 专业网站制作解决方案免费建网站软件哪个好
  • 做企业网站需要提供什么seo黑帽技术有哪些
  • 百度广告多少钱上海优化seo公司
  • 签到做任务赚钱的网站太原网站建设方案优化
  • 简易博客网站模板下载简单的seo
  • 域名申请后没有做网站2345网址导航安装
  • 苏州网站建设凡科百度 营销推广怎么做
  • jquery 手机网站开发优化公司组织架构
  • 谷歌浏览器安卓版下载搜索引擎优化的英文缩写是什么
  • 上海做高端网站建百度排名竞价