Ich frage mich, ob ich Thread blockieren kann und etwas während des Blockierens tun oder einfach Zeit zählen, während der Thread blockiert ist, weil ich Warteschlange für Flugzeuge tun möchte. Meine Flughäfen darf nur einen Landeplatz, so dass ich verwendet Warteschlange mit nur einem Schlitz, dann verwenden Sie setzen Methode:Blockieren von Threads
world.getCities().get(cityID).getQueue().put(request);
Dann möchte ich etwas Kraftstoff während der Landung brennen:
Thread.sleep(500);
fuelTank = fuelTank - 100;
Jetzt Flugzeug kann Easly Land, also benutze ich Methode nehmen():
world.getCities().get(cityID).getQueue().take();
Wenn alles fertig ist, kann nächste Flugzeug seine Landung starten.
Aber Flugzeug hat 0,5s gewartet, also hat sich sein Brennstoff nicht geändert und es wird die gleiche Menge an Brennstoff wie dieses Flugzeug vorher verbrennen und dieser zweite würde viel mehr brennen.
Also nochmal. Ich brauche einen Mechanismus, der blockierte Thread-Zeit zählt oder etwas während des Blockierens tut.
Vielen Dank im Voraus.