java加锁次数多和加锁范围大哪个更好?

synchronized锁
一个是代码块,代码块中有循环处理。
另一个是讲其中循环内执行的代码加上锁。
一个加锁粒度大,但是经过锁的次数少;
另一个加锁范围小,但是执行的次数多。
哪个更好呢?

兄弟,其实没啥纠结,如果你能在for外头加锁能实现需求,你为什么要去里头呢,你因该也知道在里头加锁会消耗更多资源的对吧,不然你也不会来提问了,自信点,你这种有点像:车很多,你要过马路,不远处有天桥,你在纠结要在车水马龙中穿过去还是上天桥走过去

建议直接加一个大范围的锁,for循环次数如果太多的话,上锁释放锁的过程也是很耗资源的

在时间耗费较大的最小步骤块前后加锁

多加锁

这个就是一个性能取舍的问题,加锁次数多和加锁范围大肯定都不影响结果,一个是在方法访问时就阻塞了,另一个是运行到代码块的时候阻塞,所以代码块的性能肯定比方法的性能要好

应该尽可能 缩小 锁的粒度,推荐第二种