- iPhone topik
- Apple Watch
- Apple iPhone SE (2020) - életképes alternatíva
- Huami Amazfit Bip okosóra
- Android alkalmazások - szoftver kibeszélő topik
- Android szakmai topik
- Okosóra és okoskiegészítő topik
- Motorola ThinkPhone - gondold végig kétszer!
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
Ú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 topik
- Philips LCD és LED TV-k
- Futás, futópályák
- PROHARDVER! feedback: bugok, problémák, ötletek
- Európa lett az AI-alapú kibertámadások játszótere
- Apple Watch
- Apple iPhone SE (2020) - életképes alternatíva
- sziku69: Szólánc.
- Apple MacBook
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3176, 96% Akkumulátor
- GYÖNYÖRŰ iPhone 12 Pro Max 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS2107, 100% Akkumulátor
- BESZÁMÍTÁS! Gigabyte B650M R5 7600X 32GB DDR4 1TB SSD RTX 4080 16GB Zalman Z1 Plus Seasonic 750W
- Apple iPhone SE 2022 / 256GB / Kártyafüggetlen / 12Hó Garancia
- DELL PowerEdge R640 rack szerver - 2xGold 6138 (20c/40t, 2.0/3.7GHz), 64GB RAM,4x1G, H730 1GB, áfás
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest