// Instead of synchronizing the whole method public synchronized void updateResource() { // update shared resource } // Use finer-grained locks public void updateResource() { synchronized (lockObject) { // update shared resource } }
// Instead of synchronizing the whole method public synchronized void updateResource() { // update shared resource } // Use finer-grained locks public void updateResource() { synchronized (lockObject) { // update shared resource } }