Hirdetés
- Teljesen szürreális, ami az RTX 5070 Ti kapcsán történik…
- 3D nyomtatás
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Videós, mozgóképes topik
- AMD Navi Radeon™ RX 9xxx sorozat
- Házimozi belépő szinten
- TCL LCD és LED TV-k
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Akkumulátor töltő digitális fényképezőgéphez
- RAID
Ú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?:))
- Teljesen szürreális, ami az RTX 5070 Ti kapcsán történik…
- 3D nyomtatás
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Luck Dragon: Asszociációs játék. :)
- Robotporszívók
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Formula-1
- Adobe Photoshop
- Arc Raiders
- Milyen NAS-t vegyek?
- További aktív témák...
- Eladó Dell Latitude E6220 HD i5-2520M 4GB 128GB új akku 6 hó gar
- Precision 5680 16" FHD+ IPS i7-13700H RTX 2000 Ada 16GB 512GB magyarított (lézerezett) vbill gar
- Eladó XFX Speedster QICK 319 AMD Radeon RX 6750 XT / kb 6 hó alza gari
- iPhone 15 128GB ÚJ gyári független 2029.01.09 Jótállás
- Frissen pasztázva! Playstation 4 Pro 1 TB + kontroller 6 hó garancia, számlával!
- Macbook Pro M3 Max 16" - 64 GB/4TB/ AJÁNDÉK MAGIC KEYBOARD 3/ 27% ÁFÁS!
- Honor X6a 128GB, Kártyafüggetlen, 1 Év Garanciával
- CSX 2x2GB (4GB) DDR2 800 MHz kit
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- Azonnali készpénzes félkonfig / félgép felvásárlás személyesen / csomagküldéssel korrekt áron
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs



