Hirdetés
- Bambu Lab 3D nyomtatók
- Azonnali informatikai kérdések órája
- Házimozi belépő szinten
- Azonnali alaplapos kérdések órája
- Vezetékes FEJhallgatók
- 5 kilowattos GPU-k előtt nyitná meg az utat az Intel
- Sony MILC fényképezőgépcsalád
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- 5.1, 7.1 és gamer fejhallgatók
- Telekom TV SmartBox: szolgáltatói set-top box alacsony korlátokkal
Új hozzászólás Aktív témák
-
Szmeby
tag
Ha egy taskot küldesz be, akkor ezt szépen időzítve hajtja végre.
Közelítsük meg empirikus úton:
service.scheduleWithFixedDelay(task, 500, 1000, TimeUnit.MILLISECONDS);Szerintem első körben töröld azt az i++; sort a ciklusod közepéből, csak zavar.
Majd vedd le a max értékét 1-re, hogy lásd, mit csinál az executor 1 taskkal.
Fél másodpercet vár, majd 1 másodpercenként meglöki ugyanazt a taskot.Ha a max értékét felhúzzuk 2-re, akkor egyértelművé válik, mi történik. A két task azonnal bekerül az executorba, mindkettő vár fél másodpercet, majd egymás mellett elindulnak. És persze az executor mindkettőt 1 másodpercenként meglöki újra, továbbra is egymás mellett futnak, hiszen ugyanakkor, ugyanolyan időzítéssel készültek el.
Ha a pool méretét nem a procik száma alapján határozod meg, hanem lehúzod 1-re, majd a max értékét felnyomod 10-re, akkor is úgy tűnik, mintha egyszerre hajtódnának végre. Valójában csak 1 szálon teszik egymás után, de a task nem csinál semmit, így villámgyorsan megtörténik, az időzítésük ugyanaz, tehát továbbra is egymáshoz nagyon közeli időpontban fognak megfutni.
Megteheted azt, hogy
service.scheduleWithFixedDelay(task, i * 200, max * 200, TimeUnit.MILLISECONDS);, de lehet erre szofisztikáltabb megoldás is. Mivel ez esetben ismerned kell azt, hogy összesen hány taszkot bízol a service-re, ami nem feltétlenül ismert az első taszk indításakor.
Nem vagyok otthon ebben a szálkésleltetésben, de csak van rá valami megoldás. A többi metódusát már nézted? 3rd-party library-ket?Jobban belegondolva, nem biztos, hogy ez ennyire egyértelmű, mert a magok száma borítja a dolgot. Egy egymagos gépen evidens. De egy 4 magos gépen, 4 szálon futtatva mit vársz tőle? 4 szál párhuzamosan futtat 1-1 taskot, majd x idő múlva indulna újabb 4 task? Mi van, ha a 4-ből 1 túl hosszú, és jönne a következő kör? Olyankor csak 3 új szál induljon? Vagy egy se, és 1 kör kimarad? Ha minden egyes taskot x idővel eltolva indítanál, akkor mi értelme több szálat használni? Sőt extrém hosszú taskoknál ugyanúgy előjöhet a fentihez hasonló probléma. Vagy olyankor nem kell várni, azonnal induljon a következő task, amíg van szabad szál?
Legrosszabb esetben csinálhatsz egy custom executorService implementációt.

Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Bambu Lab 3D nyomtatók
- World of Tanks - MMO
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Motoros topic
- Papírvékony a jövő a Samsungnál: íme, a Galaxy TriFold!
- Okos Otthon / Smart Home
- Azonnali informatikai kérdések órája
- Nintendo Switch 2
- Borderlands 4
- Házimozi belépő szinten
- További aktív témák...
- CASIO Edifice EFK-100D-3A Automata mechanikus
- Thinkpad X13 Gen2i 13.3" FHD+ IPS i5-1145G7 16GB 512GB NVMe gar
- Xiaomi 14T Pro 12/512GB, Megkímélt, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- GIGABYTE GeForce RTX 4080 SUPER WINDFORCE V2 16G - Oazis Computer garancia 2027.05.01.
- Xiaomi 14T 12/256GB, Megkímélt, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Bomba ár! Lenovo IdeaPad E50-70: i5-5G I 8GB I 128SSD I 15,6" HD I Cam I W10 I Garancia!
- LG 83C3 - 83" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
- Samsung A17 mobiltelefon
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3943, 100% Akkumulátor
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest



