Miért nem szinkronizálva hajtódik végre a kód?
Figyelt kérdés
class MyClass implements Runnable{
public void run(){
move(Thread.currentThread().getName());
}
synchronized void move(String name){
System.out.println(name+"");
System.out.println(name+"");
}
}
azt várnám ,hogy a szinkronizált move-ban kétszer írja ki egymás után az adott thread nevét. de nem. itt is random az output.
2016. jún. 7. 08:54
1/1 anonim válasza:
Mivel minden thread a saját move-ját hívja meg, persze, hogy nem szinkronizál.
Akkor lenne szinkronizálva, ha
A) a move statikus lenne
B) vagy egy olyan objektumban lenne, amiből 1 db van és azt hívnák a thread-ek
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!