Synchronized有什么作用,是如何实现的呢?

XdzPro 5月前 ⋅ 125 阅读

1Synchronized是一种对象锁,保证同一时间只有一个线程执行所修饰的方法和代码块。

2同步方法和同步代码块用于实现线程间的同步,确保多线程环境下的代码安全执行.

同步方法:当一个方法被ACC_Synchronized所标记时,线程调用该方法必须先获得锁才能执行方法中代码。 同步代码块:使用 monitorenter 和 monitorexit来进行加锁和释放锁。当线程执行到monitorenter时,争夺锁才能执行代码块中的代码。执行到minitorexit的时候,释放锁,等待其他线程争夺。 同时也维护了一个锁计数器,当有线程获得锁,计数加一,当线程释放锁,计数减1.当计数为0时,其他线程才可以获得锁。


全部评论: 0

    我有话说: