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

长春 做网站多少钱做网站商城如何优化

长春 做网站多少钱,做网站商城如何优化,查询公司,网站做拓扑图编辑synchronized关键字最主要的三种使用方式的总结 修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 。也就是给当前类加锁&…

在这里插入图片描述
synchronized关键字最主要的三种使用方式的总结

  • 修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁
  • 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 。也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类成员( static 表明这是该类的一个静态资源,不管new了多少个对象,只有一份,所以对该类的所有对象都加了锁)。所以如果一个线程A调用一个实例对象的非静态 synchronized 方法,而线程B需要调用这个实例对象所属类的静态 synchronized 方法,是允许的,不会发生互斥现象,因为访问静态 synchronized 方法占用的锁是当前类的锁,而访问非静态 synchronized 方法占用的锁是当前实例对象锁。
  • 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。 和 synchronized 方法一样,synchronized(this)代码块也是锁定当前对象的。synchronized 关键字加到 static 静态方法和 synchronized(class)代码块上都是是给 Class 类上锁。这里再提一下:synchronized关键字加到非 static 静态方法上是给对象实例上锁。另外需要注意的是:尽量不要使用 synchronized(String a) 因为JVM中,字符串常量池具有缓冲功能!
    下面我已一个常见的面试题为例讲解一下 synchronized 关键字的具体使用。

面试中面试官经常会说:“单例模式了解吗?来给我手写一下!给我解释一下双重检验锁方式实现单例模式的原理呗!”

双重校验锁实现对象单例(线程安全)

java public class Singleton {private volatile static Singleton uniqueInstance;private Singleton() {
}public static Singleton getUniqueInstance() {//先判断对象是否已经实例过,没有实例化过才进入加锁代码if (uniqueInstance == null) {//类对象加锁synchronized (Singleton.class) {if (uniqueInstance == null) {uniqueInstance = new Singleton();}}}return uniqueInstance;
}
} 

另外,需要注意 uniqueInstance 采用 volatile 关键字修饰也是很有必要。

uniqueInstance 采用 volatile 关键字修饰也是很有必要的, uniqueInstance = new Singleton(); 这段代码其实是分为三步执行:

1. 为 uniqueInstance 分配内存空间
2. 初始化 uniqueInstance
3. 将 uniqueInstance 指向分配的内存地址

但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1->3->2。指令重排在单线程环境下不会出现问题,但是在多线程环境下会导致一个线程获得还没有初始化的实例。例如,线程 T1 执行了 1 和 3,此时 T2 调用 getUniqueInstance() 后发现 uniqueInstance 不为空,因此返回 uniqueInstance,但此时 uniqueInstance 还未被初始化。

使用 volatile 可以禁止 JVM 的指令重排,保证在多线程环境下也能正常运行。


参考详细原理:Synchronized底层详细原理

http://www.yayakq.cn/news/596163/

相关文章:

  • 抚州建设工程网站佛山新网站建设公司
  • 网站服务器租用注意事项室内装修设计师工资一般多少钱
  • 青海省高速公路建设管理局网站腾讯企业邮箱收费标准一年多少钱
  • 打开百度搜索网站玉山网站建设
  • 品牌网站建设优化公司哪家好无代码开发平台排名
  • 网站被黑了你会怎么想你该怎么做云商网站建设
  • 网站无缝背景百度站长网站文件验证
  • 教育网站怎么做wordpress 开放注册
  • wordpress 建站视频建筑工程公司有什么职位
  • 杨凌规划建设局网站怎么免费制作一个网站
  • 自己做卖东西网站wordpress用户密码重置
  • 高端品牌网站建设有哪些wordpress 分享到微信
  • 无锡论坛网本地网站中国住房和城乡建设厅官网
  • WordPress创建的网站wordpress tint2.5
  • 网站建站后维护需要做哪些秦皇岛网站
  • 宽屏网站模板冒用网站备案号建设网站
  • 网站建设的基本情况高端建站收费
  • 文章网站哪里建设好长尾关键词搜索
  • 郑州网站建设网站怎么把凡科网里做的网站保存成文件
  • 高要建设网站手机网站要素
  • 哈尔滨建站的网站手机制作音乐的软件app
  • 惠州网站建设方案推广网页美工设计什么
  • 宝安做棋牌网站建设哪家公司便宜网站建设后期维护小魔仙
  • 网站移动端流量做网站怎么销售
  • 石排做网站网站建设公司怀化
  • 外贸公司访问国外网站北京百度seo价格
  • 沈阳网站建设syxhrkj公司网站制作需要什么步骤
  • 世界杯消息哪个门户网站做的好怎样在百度做网站
  • 网站页面优化分析wordpress 如何制作模板
  • 企业网站建设 电脑配置温州室内设计公司排名