synchronized为什么叫悲观锁
时间: 2023-05-24 17:05:56 浏览: 71
synchronized被称为悲观锁是因为它的机制是在读取数据之前先获取锁。假设有多个线程同时对同一个数据进行操作,使用synchronized关键字进行同步时,线程需要先获取锁,只有获取到锁的线程才能执行操作,其他线程会阻塞等待锁的释放。这种机制会造成其他线程无法访问数据,只能等待,因此也被称为“悲观锁”,因为它的实现方式认为“事情总是会出错,所以需要先锁住数据,再进行操作”。相对的,乐观锁认为“事情总是顺利的,所以不需要先锁定数据”,这是两种不同的思路,适用于不同的场景。
相关问题
synchronized是悲观锁吗
synchronized 是一种悲观锁的实现方式。在 Java 中,synchronized 关键字可以用于实现线程同步,保证多个线程对共享资源的互斥访问。它是一种悲观锁,因为它假设在任何时候都会发生并发访问的情况,所以当一个线程进入 synchronized 代码块时,其他线程需要等待该线程执行完毕才能继续执行。
相关问题:
1. 什么是悲观锁?
2. synchronized 关键字的作用是什么?
3. synchronized 关键字的使用方式有哪些?
4. 除了 synchronized,还有哪些实现线程同步的方式?
Synchronized是乐观锁还是悲观锁
Synchronized是一种悲观锁。因为在使用synchronized时,线程会先获取对象的锁,然后再执行代码。如果其他线程想要访问同一个对象,必须等待当前线程释放锁,才能继续执行,这种机制就保证了同步访问的安全性。所以,synchronized是一种悲观锁,它假设并发访问会导致冲突,需要通过加锁来保证同步性。