在进行多线程编程时,死锁是我们一定要进行判断和避免的。本篇博客介绍一下synchronized的死锁内容。
synchronized介绍
synchronized是常见的锁。常见用法如下:
synchronized (A) {
...
...
...
}
它可以保证花括号内的所有代码是原子执行的。
但我们要注意的是,sychronized锁定的对象不是代码段。sychronized锁定的实际上是一个类或者对象(A)。每个对象只能由一个线程占用锁。在执行由sychronized包含的代码时,线程会先尝试获取对象的锁再执行代码。
所以我们可以