synchronized原理
时间: 2023-10-27 09:50:28 浏览: 93
Synchronized原理-思维导图
synchronized 是 Java 中用于实现线程同步的关键字。它可以用来修饰方法或代码块,使得多个线程在访问共享资源的时候能够保持同步。
synchronized 的原理是基于 Java 中的内部锁(也称为监视器锁)实现的。每个对象都有一个内部锁,当一个线程访问一个带有 synchronized 关键字的方法或代码块时,它会尝试获取该对象的内部锁。如果该锁已经被其他线程占用,则该线程会被阻塞,直到该锁被释放为止。
当一个线程成功获取了一个对象的内部锁,它就可以执行 synchronized 代码块中的代码。在执行完毕后,该线程会释放该对象的内部锁,其他线程才能获取该锁并继续执行 synchronized 代码块中的代码。
需要注意的是,synchronized 是一种独占锁,即同一时间只有一个线程能够获取该锁。因此,使用 synchronized 进行线程同步时需要考虑到可能会出现死锁等问题。
阅读全文