Kann benachrichtigen, dass derselbe Thread mehrmals aktiviert wird?

Stellen Sie sich vor, Sie haben ein typisches Erzeuger-Verbraucher-Muster in Java. Um ein bisschen effizienter zu sein, möchten Sie verwendennotify() und nichtnotifyAll() wenn ein neues Element zur Warteschlange hinzugefügt wird. Wenn zwei Producer-Threads die Benachrichtigung aufrufen, wird dann garantiert, dass zwei verschiedene wartende Consumer-Threads aktiviert werden. Oder kann es das zwei seinnotify()s kurz hintereinander ausgelöst wird, damit derselbe Comsumer-Thread zweimal zur Aktivierung in die Warteschlange gestellt wird? Ich kann den Abschnitt nicht finden, in dem die API beschreibt, wie dies genau funktioniert. Hat Java eine atomare interne Operation, um Threads genau einmal aufzuwecken?

Wenn nur ein Verbraucher wartet, geht die zweite Benachrichtigung verloren, das ist kein Problem.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage