Threads vergleichen

Sladda

Mitglied
Hallo!

Nur eine kurze Frage:

warum kann man Threads vergleichen z.B. mit:

Code:
Thread owner;
...
if (owner != Thread.currentThread()) ...

? Warum klappt das und warum muss ich nicht equals benutzen, weil Threads doch auch Objekte sind !?
Schönen Dank
mfg
 
== bzw != verwendet man um Objektgleichheit im Sinne von das selbe Objekt zu prüfen. Also das was du willst.

Mit equals prüft man ob der Inhalt des Objekts gleich ist:
Java:
Integer i1 = new Integer(0);
Integer i2 = new Integer(0);
System.out.println(i1 == i2);//false, nicht das selbe Objekt
System.out.println(i1.equals(i2));//true, beides 0
 
Danke!

würde dann owner.equals(Thread.currentThread()) immer false geben, auch wenn es sich gerade um denselben Thread handelt ? Oder wäre dann der Inhalt (was ist der Inhalt eines Threads?) gleich und würde deswegen auch true ergeben?

Vielen Dank für Deine Mühe!
 
Aus der Doku:
public boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

* It is reflexive: for any non-null reference value x, x.equals(x) should return true.

[...]
The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).

Also für x==y ist auch x.equals(y) = true.

In dem Fall ist es also egal was du verwendest.
 
Zurück