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

沧州网站建设费用crm管理系统哪个好用

沧州网站建设费用,crm管理系统哪个好用,长沙seo外包服务,网站建设与管理题库Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果#xff1f; Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果#xff1f;仅仅是多耗资源还是会引发异常#xff1f; 不会耗资源 也不会引发异常 而是程序出现逻辑错误,…Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果 Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果仅仅是多耗资源还是会引发异常 不会耗资源 也不会引发异常 而是程序出现逻辑错误,如本来该出现 3 的地方出现了 2 …,这比前两种情况更严重 Java多线程中static变量的使用 线程是我们项目中绕不过的重点领域。提到线程就常会听到线程安全的术语。那什么是线程安全呢通俗点说就是线程访问时不产生资源冲突。其实这是一个有点难以定义的概念不是很容易让人一听就懂的概念。“一个类可以被多个线程安全调用就是线程安全的”《Java编程实践》。 来说说静态变量、实例变量、局部变量在多线程下的安全问题吧 一静态变量线程非安全 1、静态变量使用static关键字定义的变量。static可以修饰变量和方法也有static静态代码块。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说它不依赖类特定的实例被类的所有实例共享。只要这个类被加载Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此static对象可以在它的任何对象创建之前访问无需引用任何对象。 用public修饰的static成员变量和成员方法本质是变量和全局方法当声明它的类的对象时不生成static变量的副本而是类的所有实例共享同一个static变量。 2、静态变量使用的场景 (1)对象间共享值时 (2)方便访问变量时 3、静态方法使用注意事项 (1)不能在静态方法内使用非静态变量即不能直接访问所属类的实例变量 (2)不能在静态方法内直接调用非静态方法 (3)静态方法中不能使用this和super关键字 4、验证静态变量的线程安全性 (1)从程序执行的图中我们可以看出执行结果中有错误数据证明了静态变量是存在资源冲突问题的。 (2)程序运行结果图 5、结论静态变量也称为类变量属于类对象所有位于方法区为所有对象共享共享一份内存一旦值被修改则其他对象均对修改可见故线程非安全。 二实例变量单例时线程非安全非单例时线程安全 1、实例变量实例变量属于类对象的也就是说属于对象实例私有在虚拟机的堆中分配。 2、验证实例变量的线程安全性 (1)从程序截图中我们可以看到当为单例模式时会产生资源冲突当非单例模式时则不会产生线程冲突。 (2)程序运行结果图 图1 图2 3、结论实例变量是实例对象私有的系统只存在一个实例对象则在多线程环境下如果值改变后则其它对象均可见故线程非安全如果每个线程都在不同的实例对象中执行 则对象与对象间的修改互不影响故线程安全。 三局部变量线程安全 1、局部变量定义在方法内部的变量。 2、验证局部变量的安全性 (1)从程序截图中可以看出局部变量在多线程下没有产生资源冲突的问题 (2)程序运行结果图 3、结论每个线程执行时都会把局部变量放在各自的帧栈的内存空间中线程间不共享故不存在线程安全问题。 四静态方法的线程安全性 1、静态方法中如果没有使用静态变量则没有线程安全的问题 ​ 静态方法内的变量每个线程调用时都会新创建一份不会公用一个存储单元故不存在线程冲突的问题。 总结 java在执行静态方法时会在内存中拷贝一份如果静态方法所在的类里面没有静态的变量那么线程访问就是安全的比如在javaee中服务器必然会多线程的处理请求此时如果设计全局需要调用的静态方法可用此种设计。 java在执行静态方法时如果使用静态变量同时类的函数设计时使用到了静态数据最好在调用函数时使用synchronized关键字否则会导致数据的不一致行。 加静态全局的变量在多线程访问下定会出现数据的不一致行最好使用synchronized关键字确保数据的一致性典型的代表就是单例模式。 java是线程安全的即对任何方法包括静态方法都可以不考虑线程冲突但有一个前提就是不能存在全局变量。如果存在全局变量则需要使用同步机制。 加入synchronized关键字的静态方法称为同步静态方法。 在访问同步静态方法时会获取该类的“Class”对象所以当一个线程进入同步的静态方法中时线程监视器获取类本身的对象锁其它线程不能进入这个类的任何静态同步方法。它不像实例方法因为多个线程可以同时访问不同实例同步实例方法。这个其实就是操作系统中的用信号量实现进程的互斥与同步问题如果涉及在同一个类中有多个静态方法中处理多线程共享数据的话那就变成用信号量解决生产者-消费者问题。也就是说静态方法是一份临界资源对静态方法的访问属于进入临界区对静态变量的修改是一份临界资源对静态变量的修改属于进入临界区。
http://www.pierceye.com/news/981384/

相关文章:

  • 美工需要的网站阿里云wordpress托管
  • 医疗行业网站建设怎样在网上建立平台
  • 潍坊网站建设网超之梦做的网站后台修改栏目描述
  • 广西建设厅官网证件查询网站优化对企业有什么好处
  • 哪个网站做外贸的多济南建设信息网官网
  • 制作网站能挣钱企业宣传片策划公司
  • 临沂网站建设模板wordpress添加导航页面
  • 有关wordpress教学的网站商标注册号
  • 常用搜索网站浙江立鹏建设有限公司网站
  • 天津做网站优化的公司番禺商城网站建设
  • 网站建设大熊猫点搜营销型网站头部布局的元素
  • wordpress 网站死机淄博专业网站建设价格
  • 网站建设 招标书慈溪机械加工网
  • dede网站怎么做404页面做网站的市场有那么大吗
  • 自己做下载类网站家在深圳网页版
  • 建设银行网站个人客户传奇新服网
  • 河东手机网站建设工作服厂家联系方式
  • 站长工具seo综合查询搭建流程
  • 各省住房和城乡建设厅网站怎样租用个人网站空间
  • 深圳市南山区住房和建设局网站官网桂林两江四湖象山景区讲解导游词
  • 环保网站设计是什么柴沟堡做网站公司
  • 用php和mysql做网站wordpress怎么创建自己的博客
  • 网站建设制作设计珠海百度收录排名
  • 有没有做家具特卖的网站360建筑
  • 网站建设技术架构学校网站建设源代码
  • 无为教育网站网站平面设计培训
  • 广东省建筑网站信誉好的低价网站建设
  • 高端网站建设 杭州做效果图网站
  • 进贤县住房和城乡建设局网站短网址生成网站源码
  • 手机网站用二级目录做的弊端四川建设人员数据网站