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

中美军事最新消息网络优化培训

中美军事最新消息,网络优化培训,网站建设 分类,网站个人备案步骤基本定义 局部变量 是指在函数或代码块内部定义的变量,其作用范围仅限于定义它的函数或代码块内部 线程安全 是指多个线程访问共享资源时,不会破坏资源的完整性 示例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/342857.html

相关文章:

  • 有域名自己做网站neotv
  • 建设电商网站广州营销型网站
  • 网站的优点重庆高端seo
  • 做网站是网络营销策划的主要特点
  • 有哪些做任务网站免费网站注册免费创建网站
  • 电商网站seo方案网片
  • 怎么做相册网站株洲seo
  • 做网站虚拟主机配置app营销策略有哪些
  • 日本手做网站关键字排名优化公司
  • 网站字体百度客服24小时人工服务在线咨询
  • 销售型网站建设基本要素青岛推广优化
  • 网站建设安排十大计算机培训学校
  • csdn网站开发项目百度注册网站
  • 建网站啦做个公司网站大概多少钱
  • 哪家网站雅虎全球购做的好乐云seo官网
  • 密云住房和城乡建设委员会网站软件外包公司好不好
  • 微商城手机网站设计小时seo百度关键词点击器
  • wordpress if语句优化seo厂家
  • 网站开发的具体流程seo排名技术软件
  • 网站建设备案审核要多久开发网站需要多少钱
  • 专门做音箱的网站百度推广产品有哪些
  • 济南可信网站口碑营销案例简短
  • 购物网站开发大纲深圳seo技术
  • 鄂伦春网站建设磁力搜索器在线
  • 黄石网站建设教程360优化大师历史版本
  • 小城镇建设 网站官方在线域名ip查询
  • 网站架构企业收费标准网络营销方法有几种类型
  • ps做ppt模板怎么下载网站网店运营在哪里学比较好些
  • 商标网商标购买金华seo扣费
  • 网站建设后期收什么费用网络推广网站有哪些