( yoursoft | 2014. 09. 30., k – 13:12 )

Köszönöm ezt az észrevételt is.
Elvileg átgondoltam, milyen gondok keletkezhetnek, amikor (egy jó éve?) írtam ezt a kódot. A szálbiztosság nem volt követelmény, inkább a gyorsaság.

Viszont most utánagondolva lehet olyankor is gond, ha pl. az egyik szál rájön, hogy a cache mérete túl nagy és elkezdi törölni az elemeket, majd a többi szál meg folyamatosan tolja be az új értékeket. Ez nem egy túl valószínű eset és valószínűleg elég hamar "letekeri" a kívánt méret alá a map és queue méretét.

Esetleg most így megnézve még egy olyan eset is lehet, hogy pl. az egyik szál kivesz egy értéket a mapből, míg a másik belerakja a mapbe, és a queue-ból pedig kiveszi az értéket az egyik, miután már berakta a másik. Ezzel lehetnek gondok, hogy folyamatosan nő a map mérete olyanokkal, amik nincsenek a queue-ban.

Köszi, ez jó ötlet volt. :-) Ezt még megnézem, hogy a cache egyes elemeinek mi a mérete / értéke.

Közben találtam egy whirlycache-hoz hasonló újabb cache-t:
http://cache2k.org/
Ezt is megnézem.