- Amazfit Balance - ár-érték egyensúly
- Xiaomi 15 - kicsi telefon nagy energiával
- Samsung Galaxy S23 Ultra - non plus ultra
- Yettel topik
- Samsung Galaxy S21 FE 5G - utóirat
- iPhone topik
- Garmin Fenix 7 és 7S - profi sport megszokásból
- Netfone
- Google Pixel 9a - a lapos munka
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
Ú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?:))
- Gamer Intel Core i5 12400 / 16GB DDR4 / GTX 1660 SUPER 6GB / 256GB NVME SSD / 1TB HDD /
- RAM --- SoDIMM --- SD-DDR1-2-3
- ÚJ DLSS4 Gamer PC 14Gen i5 14400 / 16GB DDR4 / RTX 5060 8GB / 512GB NVME SSD
- Steam Deck 512GB LCD
- HP 14 Elitebook 840 G10 FHD+ IPS i5-1335U 10mag 32GB RAM 512GB SSD Intel Iris XE Win11 Pro Garancia
- Bomba ár! Dell Latitude 7390 - i7-8GEN I 16GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- GYÖNYÖRŰ iPhone 13 Pro Max 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3063
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- DDR5 16GB 8GB 32GB 4800MHz 5600MHz RAM Több db
- Lenovo ThinkPad T14 Gen1 Ryzen5
Állásajánlatok
Cég: FOTC
Város: Budapest