并发JavaJava 并发锁
- 分类
- Java 并发
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/28 21:25
答案
synchronized可以用来修饰方法和代码块 当synchronized修饰实例方法时,锁的是当前对象,进入同步代码需要获得当前对象的锁。而当synchronized修饰的是静态方法时,锁的是类,进入同步代码需要获得当前类的锁。修饰方法时,会在方法的字节码中加入一个ACC_SYNCHRONIZED标识,来说明当前方法是同步方法。 当synchronized修饰代码块时,可以锁对象或者类。修饰代码块时,是在字节码中代码块前添加monitorenter,代码块后添加monitorexit,代表同步代码的开始和结束。
相关题目(5)
Java 并发并发JavaJava 并发锁
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
有哪些支持并发的集合?共源 1
Java 并发并发JavaJava 并发
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(并发).md
knowledge_noteQuestion 43: synchronized 的使用方式有哪些?锁的对象分别是什么?
Source answer: synchronized可以用来修饰方法和代码块 当synchronized修饰实例方法时,锁的是当前对象,进入同步代码需要获得当前对象的锁。而当synchronized修饰的是静态方法时,锁的是类,进入同步代码需要获得当前类的锁。修饰方法时,会在方法的字节码中加入一个ACC_SYNCHRONIZED标识,来说明当前方法是同步方法。 当synchronized修饰代码块时,可以锁对象或者类。修饰代码块时,是在字节码中代码块前添加monitorenter,代码块后添加monitorexit,代表同步代码的开始和结束。
Reviewed answer: synchronized 可修饰实例方法、静态方法和代码块。修饰实例方法时锁的是当前对象;修饰静态方法时锁的是 Class 对象;修饰代码块时锁的是括号中指定的对象。方法同步在字节码层面体现为 ACC_SYNCHRONIZED,代码块同步使用 monitorenter/monitorexit。