Hirdetés
- Milyen okostelefont vegyek?
- Drasztikus változást mutat a Sony mobilja az első képeken
- One mobilszolgáltatások
- Xiaomi 13 - felnőni nehéz
- Xiaomi 15T Pro - a téma nincs lezárva
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- iPhone topik
- Xiaomi 17 - még mindig tart
- Nagy aksival és erős hardverrel megjött Magyarországra a Poco X8 Pro és Pro Max
- Xiaomi 17 Ultra - jó az optikája
Ú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?:))
- exHWSW - Értünk mindenhez IS
- Forza sorozat (Horizon/Motorsport)
- Allegro vélemények - tapasztalatok
- Konkrét moderációval kapcsolatos kérdések
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Otthoni hálózat és internet megosztás
- AliExpress tapasztalatok
- 50 év után kilőtt négy űrhajós a Holdra
- Samsung Galaxy Felhasználók OFF topicja
- Autós topik
- További aktív témák...
- Xiaomi Redmi Note 8 Pro 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 12 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- LG SN8Y 5.1.2 Dolby Atmos soundbar MERIDIAN technológiával hangprojektor
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo ThinkPad L16 Gen 1 - 16" WUXGA IPS - Ultra 5 135U - 16GB - 512GB - Win11 - 2 év gari
- Lenovo ThinkPad T14S Gen1 Ryzen5 4650U Refurbished - Garancia
- HP 200W töltők (19.5V x 10.3A) kis kék, kerek, 4.5x3.0mm, 928429-002
- HÚSVÉTI AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- Bomba ár! Lenovo ThinkPad T480 - i5-8G I 16GB I 256SSD I 14" FHD I Cam I W11 I Garancia!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

