Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

synchronized关键字可以用来修饰方法,也可以用来修饰代码块,但是底层的实现有所不同。对于同步方法,JVM采用ACC_SYNCHRONIZED标记符来实现同步。 对于同步代码块。JVM采用monitorentermonitorexit两个指令来实现同步。

Q1: synchronized关键字如何实现原子性?

​ 通过moniterentermoniterexit两个指令保证代码块在同一时间内只能被同一线程访问。

Q2: synchronized关键字如何实现可见性?

​ 对于sybchronized关键字,有一条规定是这样的,在对代码块解锁前,需要先把里面的变量同步到主存中,以此来保证可见性。

评论