Tag: reentrantlock

为什么使用ReentrantLock如果可以使用synchronized(this)?

我试图了解是什么使得并发locking如此重要,如果可以使用synchronized (this) 。 在下面的虚拟代码中,我可以这样做: 同步整个方法或同步易受攻击的区域(synchronized(this){…}) 或用ReentrantLocklocking易受攻击的代码区域。 码: private final ReentrantLock lock = new ReentrantLock(); private static List<Integer> ints; public Integer getResult(String name) { . . . lock.lock(); try { if (ints.size()==3) { ints=null; return -9; } for (int x=0; x<ints.size(); x++) { System.out.println("["+name+"] "+x+"/"+ints.size()+". values >>>>"+ints.get(x)); } } finally { lock.unlock(); } return random; }