Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Szólánc.
- Mr Dini: Mindent a StreamSharkról!
- gban: Ingyen kellene, de tegnapra
- Dr. Mózes: Lakberendezési tanácskérés
- eldiablo: 30 év után szakítottunk, de azért még beszélünk...
Új hozzászólás Aktív témák
-
loszerafin
senior tag
Próbálkozom a thread-ekkel és elakadtam.
a run() metódusom szinkronizált, egy ciklusban a cnt mezőhöz hozzáad egyet, majd ki is von.
A main()-ben 500 msec-enként kiírom a cnt értékét. A kimenet hol 0, hol egy. Nyilván, a main() metódust futtató szál println-ja ''beüt'' a cnt-hez hozzáadó és abból kivonó utasítás közé. Hogy lehet ezt elkerülni?
class Counter1 {
static int cnt = 0;
static boolean end = false;
static class ModCounter implements Runnable {
public synchronized void run() {
while(!end){
cnt += 1;
cnt -= 1;
}
}
}
public static void main(String[] args)
throws InterruptedException{
ModCounter modc = new ModCounter();
Thread t1 = new Thread(modc);
t1.start();
for(int i=0; i<10; i++){
System.out.println(cnt);
Thread.sleep(500);
};
end = true;
t1.join();
System.out.println(cnt);
}
}
Kimenet:
0
1
1
0
0
1
1
1
0
1
0
Szeretném, ha csupa 0 jelenne meg.
Próbáltam a kiírást szinkronizálni:
synchronized (Counter1.class) {
System.out.println(cnt);
};
De semmi változás.
Előre is köszönöm
KL
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Samsung Galaxy A54 - türelemjáték
- Nem elég a RAM-ok, NAND-ok és VGA-k áremelkedése
- Kecskemét és környéke adok-veszek-beszélgetek
- Az elmúlt 30 év legjobb processzorai
- Futás, futópályák
- Mobil flották
- HiFi műszaki szemmel - sztereó hangrendszerek
- Meglepően lassú az iOS 26 terjedése
- Battlefield 6
- TCL LCD és LED TV-k
- További aktív témák...
- AKCIÓ! HP EliteBook x360 830 G7 i5-10210U 16GB 1000GB 1 év garancia
- HIBÁTLAN iPhone 11 64GB Red-1 ÉV GARANCIA - Kártyafüggetlen, MS4388
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- Apple iPhone 15 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku:83%
- Csere-Beszámítás! Lenovo Ideapad Gaming 3 Laptop! I5 12450H / RTX 3050 / 16GB DDR4 / 512+256 SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

