Ich habe zwei Methoden, die beide von verschiedenen Threads ausgeführt werden, eine der Methoden, die ich nicht ausführen möchte, wenn der andere aufgerufen wurde. Dies ist der Grund, warum ich gewählt hat, eine SperreReentrantLock - Ist das ein gültiger Ansatz zur Verwendung?
@Override
public synchronized void doSomething(int[] params)
{
while (lock.isLocked())
{
// wait for it to become unlocked
}
//lock is released so lets do some stuff
in meiner anderen Methode zu verwenden, habe ich die folgende Umsetzung
@Override
public void doSomethingElse(int param)
{
lock.lock();
for (int i = 0 ; i < param; i++)
{
//do some stuff
}
lock.unlock();
}
Ist die while-Schleife die richtige Art und Weise zu sagen, mag ich diesen Thread warten hier, bis die Sperre aufgehoben wird, oder gibt es einen besseren Weg, diesen
Dank