-
Data: 2009-08-04 21:09:17
Temat: Re: Opowiadanie o GC
Od: Piotr Lipski <l...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> > Immutable ma się tu jak pięść do nosa. Sens istnienia WeakHashMap jest
> > w zmienności -
> > usuwane są z niej klucze, które GC zbierze.
>
> Nie napisałem, ze WeakHashMap jest immutable, tylko że bezpieczeństwo
> przy wielu wątkach jest związane z brakiem zapisów.
>
> > To czy get jest operacją modyfikującą jest szczegółem implementacji.
>
> To trochę daleko posunięta teza. W dodatku sprzeczna z książką, którą
> polecał A.L. i w której pokazano, jak można opakować HashMapę w klasę,
> która eksponując tylko get() jest bezpieczna.
Ale co to ma wspólnego z dyskusją na temat WeakHashMap?
> > Istotne jest, że w pewnym momencie jakiś obiekt zawarty w WeakHashMap
> > jest "weakly reachable". Można więc "go" usunąć z mapy.
> > Skąd wiadomo, że jest "weakly reachable"? - zaglądamy do dokumentacji
> > WeakReference:
>
> I co - jest tam coś o WeakHashMap.get?
>
> Skąd pomysł, że get() konsumuje kolejkę referencji? Dlaczego nie put
> ()?
> Nie wydaje Ci się, że put() byłby bardziej odpowiednim kandydatem,
> skoro i tak jest już logicznie modyfikatorem?
> Tak czy inaczej - nawet jeśli get() stymuluje czyszczenie mapy, co z
> programem, który nie woła get()?
wszystko jest w dokumentacji:
"Because the garbage collector may discard keys at any time, a
WeakHashMap may behave as though an unknown thread is silently
removing entries. In particular, even if you synchronize on a
WeakHashMap instance and invoke none of its mutator methods, it is
possible for the size method to return smaller values over time, for
the isEmpty method to return false and then true, for the containsKey
method to return true and later false for a given key, for the get
method to return a value for a given key but later return null, for
the put method to return null and the remove method to return false
for a key that previously appeared to be in the map, and for
successive examinations of the key set, the value collection, and the
entry set to yield successively smaller numbers of elements."
PL
Następne wpisy z tego wątku
- 05.08.09 05:34 Marcin 'Qrczak' Kowalczyk
- 05.08.09 08:47 Maciej Sobczak
- 05.08.09 08:59 Maciej Sobczak
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=