synchronized 代码块加锁区别
时间: 2023-12-07 08:47:51 浏览: 28
加锁实现线程同步代码...
在 Java 中,synchronized 有两种使用方式:synchronized 方法和 synchronized 代码块。
synchronized 方法是将整个方法体加锁,即一个线程执行该方法时,其他线程不能同时执行该方法。
synchronized 代码块是将一段代码加锁,即一个线程执行该代码时,其他线程不能同时执行这段代码。
两者的区别在于范围和粒度。synchronized 方法的范围是整个方法,粒度较粗;而 synchronized 代码块的范围是一段代码块,粒度较细。一般来说,应该尽量使用 synchronized 代码块,因为这样可以减小锁的粒度,提高并发性能。但是,在某些情况下,如果需要锁住整个方法,可以使用 synchronized 方法。
阅读全文