synchronized原理

synchronized原理:

同步块:在class文件中,synchronized代码块的头尾会插入monitorenter和monitorexit,当一个对象进入了synchronized的代码块,那么这个对象的monitor就进入了同步块,这个时候线程就获取到了这个对象的锁,当代码块执行完,monitor退出,则线程就释放了该对象的锁。(注:每个对象的monitor在同一时间只能由一个线程持有)

同步方法:依靠方法监视器上的ACC_SYNCHRONIZED来实现的

同步块和同步方法都可以用monitor来实现

你可能感兴趣的:(synchronized原理)