Sprache

Object.Wait Methode

Definition

Überlädt

Name Beschreibung
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

[Android.Runtime.Register("wait", "()V", "")]
public void Wait();
[<Android.Runtime.Register("wait", "()V", "")>]
member this.Wait : unit -> unit
Attribute

Ausnahmen

wenn der Thread, der diese Methode aufruft, nicht der Besitzer des Monitors dieses Objekts ist.

wenn der aktuelle Thread unterbrochen wurde. Der unterbrochene Status des aktuellen Threads wird gelöscht, bevor die Ausnahme ausgelöst wird.

Hinweise

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

In allen Aspekten verhält sich diese Methode so, als wäre wait(0L, 0) sie aufgerufen worden. Ausführliche Informationen finden Sie in der Spezifikation der #wait(long, int) Methode.

Java Dokumentation für java.lang.Object.wait().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Weitere Informationen

Gilt für:

Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

[Android.Runtime.Register("wait", "(J)V", "")]
public void Wait(long timeoutMillis);
[<Android.Runtime.Register("wait", "(J)V", "")>]
member this.Wait : int64 -> unit

Parameter

timeoutMillis
Int64

die maximale Wartezeit in Millisekunden

Attribute

Ausnahmen

wenn millis .

wenn der Thread, der diese Methode aufruft, nicht der Besitzer des Monitors dieses Objekts ist.

wenn der aktuelle Thread unterbrochen wurde. Der unterbrochene Status des aktuellen Threads wird gelöscht, bevor die Ausnahme ausgelöst wird.

Hinweise

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

In allen Aspekten verhält sich diese Methode so, als wäre wait(timeoutMillis, 0) sie aufgerufen worden. Ausführliche Informationen finden Sie in der Spezifikation der #wait(long, int) Methode.

Java Dokumentation für java.lang.Object.wait(long).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Weitere Informationen

Gilt für:

Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

[Android.Runtime.Register("wait", "(JI)V", "")]
public void Wait(long timeoutMillis, int nanos);
[<Android.Runtime.Register("wait", "(JI)V", "")>]
member this.Wait : int64 * int -> unit

Parameter

timeoutMillis
Int64

die maximale Wartezeit in Millisekunden

nanos
Int32

zusätzliche Zeit in Nanosekunden im Bereich von 0-9999999

Attribute

Ausnahmen

wenn millis , nanos oder nanos > 999999.

wenn der Thread, der diese Methode aufruft, nicht der Besitzer des Monitors dieses Objekts ist.

wenn der aktuelle Thread unterbrochen wurde. Der unterbrochene Status des aktuellen Threads wird gelöscht, bevor die Ausnahme ausgelöst wird.

Hinweise

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

Der aktuelle Thread muss über die Monitorsperre dieses Objekts verfügen. In der #notify notify Methode finden Sie eine Beschreibung der Möglichkeiten, wie ein Thread zum Besitzer einer Monitorsperre werden kann.

Diese Methode bewirkt, dass sich der aktuelle Thread (hier als <var>T</var> bezeichnet) im Wartesatz für dieses Objekt befindet und dann alle Synchronisierungsansprüche für dieses Objekt zurückgibt. Beachten Sie, dass nur die Sperren für dieses Objekt aufgehoben werden; alle anderen Objekte, auf denen der aktuelle Thread synchronisiert werden kann, bleiben gesperrt, während der Thread wartet.

Thread <var>T</var> wird dann für Threadplanungszwecke deaktiviert und liegt ruhend, bis eins der folgenden Ereignisse auftritt: <ul><li>Ein anderer Thread ruft die notify Methode für dieses Objekt auf und thread <var>T</var> wird willkürlich als Thread ausgewählt, der wach werden soll. <li>Ein anderer Thread ruft die notifyAll Methode für dieses Objekt auf. <li>Ein anderer Thread thread#interrupt() unterbricht thread <var>T</var>. <li>Die angegebene Menge an Echtzeit ist verstrichen, mehr oder weniger. Die Menge an Echtzeit in Nanosekunden wird durch den Ausdruck 1000000 * timeoutMillis + nanosangegeben. Wenn timeoutMillis und nanos beide null sind, wird die Echtzeit nicht berücksichtigt, und der Thread wartet, bis einer der anderen Ursachen weckt. <li>Thread <var>T</var> ist erschüttelt. (Siehe unten.) </ul>

Der Thread <var>T</var> wird dann aus dem Wartesatz für dieses Objekt entfernt und für die Threadplanung erneut aktiviert. Es konkurriert in der üblichen Weise mit anderen Threads für das Recht, auf das Objekt zu synchronisieren; sobald es die Kontrolle über das Objekt zurückerlangt hat, werden alle Synchronisierungsansprüche für das Objekt in den Status quo ante wiederhergestellt , d. h. zu der Zeit, zu der die wait Methode aufgerufen wurde. Thread <var>T</var> gibt dann aus dem Aufruf der wait Methode zurück. Daher entspricht der Synchronisierungsstatus des Objekts und des Threads wait bei der Rückgabe der T Methode genau dem Zeitpunkt, an dem die wait Methode aufgerufen wurde.

Ein Thread kann aufwachen, ohne Benachrichtigungen, Unterbrechungen oder Zeitüberschreitungen zu erhalten, ein sogenanntes <spurious>wakeup</em>. Obwohl dies selten in der Praxis auftritt, müssen Anwendungen durch Tests auf die Bedingung geschützt werden, die dazu geführt hat, dass der Thread wach wird, und weiterhin warten, wenn die Bedingung nicht erfüllt ist. Sehen Sie sich das folgende Beispiel an.

Weitere Informationen zu diesem Thema finden Sie in Abschnitt 14.2, "Condition Queues", in Brian Goetz und anderen <Em> Java Concurrency in Practice</em (Addison-Wesley, 2006) oder Item 69 in Joshua Bloch es >em<Effective Java, Second Edition>/em<> (Addison-Wesley, 2008).

Wenn der aktuelle Thread java.lang.Thread#interrupt() vor oder während des Wartens durch einen beliebigen Thread unterbrochen wird, wird ein InterruptedException Fehler ausgelöst. Der <em-unterbrochene>Status</em> des aktuellen Threads wird gelöscht, wenn diese Ausnahme ausgelöst wird. Diese Ausnahme wird erst ausgelöst, wenn der Sperrstatus dieses Objekts wie oben beschrieben wiederhergestellt wurde.

Java Dokumentation für java.lang.Object.wait(long, int).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Weitere Informationen

Gilt für: