Hirdetés
- GoodSpeed: Daikin FTXF35E / RXF35F Sensira 3,3 kW Inverteres klíma - a Sztori
- Luck Dragon: Asszociációs játék. :)
- MasterDeeJay: Mi ez a pici videókártya? AMD E9173 teszt
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- Geri Bátyó: Agglegénykonyha 14 – Kések, késélezés
- Andras-G: Az internet veszélyei [2. rész] - Facebook Marketpalce
- sziku69: Szólánc.
- mefistofeles: Az elhízás nem akaratgyengeség!
- Gurulunk, WAZE?!
Ú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?:))
- BestBuy topik
- Pánik a memóriapiacon
- AMD off topik: VGA, CPU, APU és minden, ami AMD
- Vezetékes FEJhallgatók
- Elektromos autók - motorok
- Filmvilág
- Ilyen olcsó sem volt még egy Apple notebook
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Kerékpárosok, bringások ide!
- Path of Exile (ARPG)
- További aktív témák...
- MEDION Erazer Major X20 Gamer laptop -40% i7-13700HX 16/1TB NVIDIA RTX 4070 8GB QHD 240Hz
- Seagate IronWolf 4TB HDD 100/100 Beszámítás OK!
- Lenovo LOQ 15IRH8 / i5-13500H / RTX 4060 / 16GB / garancia
- Lenovo ThinkPad T14s Gen 2 Ryzen 5 PRO 16GB RAM 256GB SSD FHD Touch 97% akku, szép állapotú
- ASUS Vivobook S15 OLED BAPE Edition (K5504VA) - Full Blue Bundle - 120Hz 3K OLED
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB Blue Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4240
- REFURBISHED és ÚJ - Lenovo ThinkPad Ultra Docking Station (40AJ)
- Samsung Galaxy Z Fold 6 12/512GB - Újszerű, Független, Ezüst - 1 év garanciával
- Apple iPhone 14 128GB,Újszerű,Dobozaval,12 hónap garanciával
- Konzol felvásárlás!! Xbox Series S, Xbox Series X
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

