- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3.2 JVM相关专题: JVM的同步问题 Java程序需要为两种多线程访问程序进行协调: (1)保存在堆中的实例变量 (2)保存在方法区中的类变量 程序不需要协调保存在java栈中的局部变量(因为线程私有)。 JVM为每个对象和类都关联一个锁(mutex),锁住一个类的时候,实际上是锁住该类的Class对象。 编程人员不需要自己动手加锁,对象锁是JVM内部使用的,只需要编写同步语句或者同步方法就可以标志一个监视区域。 synchronized对应的JVM操作码:monitorenter和monitorexit double和long是非原子型的基本类型,数组是非原子型的对象类型 关于volatile: volatile声明的变量表示保证其必须与主内存保持一致,实际上是变量的同步,主要用于double和long变量前。 3.2 JVM相关专题: JVM的同步问题 synchronized 可作用于实例变量、对象引用、static方法、类名称字面常量; 每个对象只有一个锁(lock)与之相关联。 实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。 无论synchronized关键字加在方法上还是对象上,它取得的锁都是对象,而不是把一段代码或函数当作锁,而且同步方法很可能还会被其他线程的对象访问: 把synchronized当作函数修饰符时:(只锁定该同步方法所在的某个对象) public synchronized void methodA …. 等价于: public void methodA synchronized this ….. 3.2 JVM相关专题: JVM的同步问题 把synchronized用于同步块时: public void method3 SomeObject so synchronized so ….. 这时,锁就是so这个对象,谁拿到这个锁谁就可以运行它所控制的那段代码。当有一个明确的对象作为锁时,就可以这样写程序。 但当没有明确的对象作为锁,只是想让一段代码同步时,可以创建一个特殊的instance变量(必须是一个对象)来充当锁: class Foo implements Runnable private byte[] lock new byte[0];? //特殊的instance变量 public void methodA synchronized lock … ….. 3.2 JVM相关专题: JVM的同步问题 把synchronized用于static函数时: Class Foo // 同步的static 函数 public synchronized static void methodA …. 等价于: public void methodB synchronized Foo.class //? class literal 类名称字面常量 代码中的methodB 方法是把class literal作为锁的情况,它和同步的static函数产生的效果是一样的,取得的锁很特别,是当前调用这个方法的对象所属的类Class,而不再是由这个Class产生的某个具体对象。 3.3 JVM相关专题: JAVA对象创建 一旦一个类被装载、连接和初始化之后,就可以随时使用了。程序可以访问它 静态字段,调用它的静态方法,或者创建它的实例。在Java程序中,类可以被明确 或隐含地实例化。 Java四种显式创建对象 实例化一个类 的方式: 用new语句创建对象 用反射方式,调用Class或Constructor类的newInstance 方法 调用对象的clone 方法 4. 采用反序列化方式,调用ObjectInputStream的readObject 方法 3.3 JVM相关专题: JAVA对象创建 JVM主动使用java类的六种情况: 1. 创建类的新实
您可能关注的文档
最近下载
- 2023~2024学年三年级下册语文期末模考试卷·创意情境 统编版.docx VIP
- 扬州地区部分县2025届全国卷Ⅱ数学试题中考模拟题解析(精编版)含解析.doc VIP
- 中国规范与菲律宾规范中风荷载计算比较研究参考.pdf VIP
- 学校党组织领导的校长负责制实施方案.doc VIP
- 人教版三年级数学下册第一次月考试卷第一二单元.doc VIP
- JBT14264-2022 高温纳电池性能要求和试验方法.pdf
- 2025年科尔沁艺术职业学院单招职业适应性测试题库参考答案.docx
- 北师大版小学一年级下册语文第一-六单元月考试卷2.doc VIP
- 中文大模型基准测评2024年度报告.pdf
- 金属非金属矿山重大事故隐患检查表(根据金属非金属矿山重大事故隐患判定标准(2022)编制).pdf
文档评论(0)