Ú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
- Motorola Edge 50 Neo - az egyensúly gyengesége
- sziku69: Szólánc.
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Építő/felújító topik
- Milyen processzort vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Spórolós topik
- Hardcore café
- Milyen billentyűzetet vegyek?
- Gaming notebook topik
- További aktív témák...
- MSI katana 15 HX Intel Core i7-14650HX, NVIDIA GeForce RTX 5070, 16 GB DDR5, 512 GB ssd
- Lenovo Legion Pro 16ADR10 gamer laptop
- Nord Stage 3 patika állapotban első tulajdonostól (dohány mentes környezetből) jutányos áron eladó!
- ASRock B550 Steel Legend
- HyperX Fury 64GB KIT / DDR4-3200MHz-CL16 / 4x16GB
- BESZÁMÍTÁS! MSI B550M R5 5600X 16GB DDR4 512GB SSD ROG RTX 3070 Ti 8GB Asus A31 PLUS TG ARGB 750W
- Keresünk iPhone 12/ 12 Mini/ 12 Pro/12 Pro Max
- Samsung Galaxy A8 2018 32GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- Huawei Freebuds 6 fülhallgató
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest


