开发者社区> 问答> 正文

Java并行程序优化中关于锁中的synchronized是什么意思?

Java并行程序优化中关于锁中的synchronized是什么意思?

展开
收起
我是小美女 2021-10-29 20:59:43 428 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令。

    synrhronized使用广泛。其应用层的语义是可以把任何一个非null对象作为"锁",
    当synchronized作用在方法上时,锁住的便是对象实例(this);
    当作用在静态方法时锁住的便是对象对应的Class实例,因为Class数据存在于永久带,因此静态方法锁相当于该类的一个全局锁;
    当synchronized作用于某一个对象实例时,锁住的便是对应的代码块。
    
    

    在HotSpot JVM实现中,锁有个专门的名字:对象监视器。

    2021-10-29 21:08:38
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载