手机版
你好,游客 登录 注册
背景:
阅读新闻

Java同步机制中用到的锁的思想

[日期:2015-08-05] 来源:Linux社区  作者:jq_ak47 [字体: ]

锁是计算机的一个术语,“锁”是一种思想,但是不同领域有不同的实现方式。对于Java中的线程同步来说,锁有两种:一、对象锁 ; 二、类锁;

对象锁作用于类中的非静态同步方法,对非同步方法没任何作用。

在Java平台内部,会为每个对象分配一个对象锁。锁有两种状态 开着的(锁属于对象),锁上(锁属于线程)

Java平台实现方法同步原则如下:

1、当一个线程要通过一个对象引用调用同步方法时候,线程会向Java平台申请锁;锁如果开着的,Java平台锁上这个对象锁,线程获得对象锁。

2、如果对象锁是锁着的,那么申请对象锁的线程需要等有对象锁的线程打开对象锁

3、在线程获得了对象锁后,Java平台就允许线程以一个对象引用去访问对象实例范围内的任何同步方法

4、线程执行完毕同步方法后,必须归还对象锁,也即打开对象锁供其他线程使用。

5、当对象锁打开后,Java平台将是否有线程等待对象锁,有就将对象锁锁上给这个线程。然后唤醒线程继续执行。如果没有对象锁归还对象实体。

对于类锁和对象锁唯一不同的是有静态同步方法的类才有一个类锁。处理流程和对象锁一样。

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-08/121115.htm

linux
相关资讯       Java同步机制  Java锁 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款