Hirdetés
- Amazfit Helio Strap – képernyőmentesen
- Apple iPhone 14 - tavalyi termésből főzve
- Poco F3 - a mindenes, de nem mindenkinek
- Apple iPhone 16 Pro - rutinvizsga
- Samsung Galaxy A52s 5G - jó S-tehetség
- MIUI / HyperOS topik
- Samsung Galaxy S25 - végre van kicsi!
- Megtartotta Európában a 7500 mAh-t az Oppo
- iPhone topik
- Samsung Galaxy S23 Ultra - non plus ultra
Ú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
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- iPhone 15 PRO MAX 256GB natúr titán gyonyörű! KÁRTYAFÜGGETLEN! Akkumlátor 89%! Fulldoboz!
- -ÚJ,2 ÉV GAR- GAMER PC: RYZEN 5 4500-5600X +RX 6600/6700XT +16-64GB DDR4! SZÁMLA! 70 féle ház!
- MacBook Pro 14 (2021) M1 Pro / 16 GB RAM / 512 GB SSD Új topcase, 100% akku
- Yamaha R-N402D sztereó erősítő
- HP ProBook 450 G7, 15,6" FHD IPS, I5-10210U, 8GB DDR4, 256GB SSD, W11, Számla, 1 év garancia ( olvas
- Vállalom telefonok,tabletek javítását ,(szoftveres hibát is,frp lock-ot is)márkától fügetlenűl
- BESZÁMÍTÁS! ASRock B450 R5 5500 16GB DDR4 250GB SSD 1TB HDD GTX 1050Ti 4GB GameMax STORM ADATA 600W
- 24 GB-os RTX 3090 OEM
- Honor Magic7 Pro 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! MSI B550M R7 5700X 32GB DDR4 1TB SSD RTX 4070 12GB ZALMAN M4 A-Data 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


