Warum ein ReentrantLock verwenden, wenn man synchronisiert (dies) verwenden kann?

Ich versuche zu verstehen, warum die Sperre in der Parallelität so wichtig ist, wenn man sie verwenden kannsynchronized (this). Im Dummy-Code unten kann ich entweder:

die gesamte Methode synchronisiert oder den gefährdeten Bereich synchronisiert (synchronisiert (this) {...})ODER sperren Sie den anfälligen Codebereich mit einem ReentrantLock.

Code:

    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;
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage