Ich versuche, ein Semaphor zu verwenden, um einen Thread für ein paar Sekunden zu sperren, bevor es auf dem Versuch aufgibt, die Sperre zu erwerben, und macht weiter. Das Problem ist, ich denke, der Semaphor sperrt eigentlich nichts. Hier ist, was ich versuche zu tun:Später erwirbt auf Semaphor auf dem gleichen Thread
Semaphore lock = new Semaphore(1)
lock.acquire();
//Wait until some other thread releases the lock, or until the timeout
lock.tryAcquire(WAIT_INTERVAL, TimeUnit.MILLISECONDS);
//do whatever
Ich denke, das Problem ist: Der Versuch, zweimal aus dem gleichen Thread zu erwerben nicht den Faden nicht ausgeführt werden, wenn es bereits das Schloss erworben hat. Aber ich bin mir nicht sicher. Ist das was passiert?
Danke Jungs. im Code
Kann nicht reproduziert werden. Seltsame Möglichkeit, deinen eigenen Thread zu blockieren. Suchst du nach 'Thread.sleep()'? – EJP