Új hozzászólás Aktív témák
-
thon73
tag
No, úgy tűnik, sikeresen beletenyereltem valamibe, ami messze meghaladja a tudományom. Ami megnyugtat: nem csak az enyémet. Tanulás céljából ajánlom a következő cikket: [link]; szerencse h. az említett professzor volt olyan kedves, és a pórnépnak is csinált biztonságos osztályokat...
Kibogoztam az ArrayAdapter source-kódját is. A konstruktorban megadhatjuk a felhasználni kívánt ArrayList-et, melyet = jellel tárol a belső változóban.
Ezt követően a Filter() rész pont azt csinálja, amit én: lock-olja a belső változó hozzáférését, és végigolvassa a tömböt (pontosabban átmásolja egy másikba). Ez azonban NEM szinkronizált cselekedet, uis. időközben egy másik programrész (akár UI szálon,mert a Filter worker-szálon van!) módosíthatja az eredeti tömböt. Vagy összeomlik, vagy exception-t kapunk. A saját változatomban (belassítottam a filtert) sikerült is a hibát produkálni.
Ált. persze nem lesz hiba, egyszerűen azért, mert a Filter (ha egyáltalán használjuk), sokkal gyorsabban lefut, semmint változna közben a tömb. De ha a Filter lassul - akkor máris előjöhet a hiba, még a legegyszerűbb listában is. Az én problémám nyilván szélsőséges (túl nagy a lista), és valójában a filtert nem is akartam használni (pont a lassúsága miatt), de a logikai hiba az akkor is logikai hiba.
Elvi megoldást úgy találtam a magam számára, hogy készítek egy ArrayList leszármazottat, amit a Loader fel tud tölteni, távolról változtatható - de csak akkor, ha a Filter nem állítja le a működését. Pl. úgy, hogy a filter teljesen más metódussal vesz ki elemeket; ha a tömb változik, akkor ez a lehetőség lezárul, úgyis megváltozott a szűrni kívánt anyag.
Gondoltam, megosztom a gondolataimat, hátha mást is érdekel ez a kérdés. De, mint fent írtam, ez kicsit több, mint amit biztonságosan átlátok, így aztán ha hülyeséget gondolk, kérlek, javítsatok!

Új hozzászólás Aktív témák
- Jogász topik
- Milyen belső merevlemezt vegyek?
- Azonnali fáradt gőzös kérdések órája
- Tidal
- Xiaomi 17 Ultra - jó az optikája
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Kormányok / autós szimulátorok topikja
- Diablo IV
- Konzol Screenshot
- Hosszú premier előzetest kapott az Arknights: Endfield
- További aktív témák...
- Lenovo X1 Carbon 13,3" - i5 7300U, 8GB RAM, SSD, jó akku - számla, 6 hó gar
- Samsung Galaxy A16 / 4/128GB / Kártyafüggetlen / 12HÓ Garancia
- BESZÁMÍTÁS! MSI B450 R7 1700 16GB DDR4 512GB SSD GTX 1070 8GB Rampage SHIVA Thermaltake 500W
- Apple iPhone 13 Pro 128GB,Újszerű,Dobozaval,12 hónap garanciával
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

