eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingOpowiadanie o GCRe: Opowiadanie o GC
  • Data: 2009-08-05 08:47:43
    Temat: Re: Opowiadanie o GC
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 4 Sie, 23:09, Piotr Lipski <l...@g...com> wrote:

    > > > 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?

    To ma wspólnego, że nie wiadomo, czy dwa wątki użytkownika mogą czytać
    obiekt tej klasy.
    Wiadomo, że w przypadku HashMap mogą to robić.

    Co takiego sprawia, że z WeakHashMap nie mogą? W dokumentacji nic na
    ten temat nie ma.

    > 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.
    [...]

    Czyli nie można wołać get() nawet z jednego wątku?

    Otóż można. Dokumentacja mówi, że działalność GC jest widoczna ale
    bezpieczna dla mapy i *tylko to* wynika z tego, co zacytowałeś.

    Pytanie - czy można wołać get() z dwóch wątków?

    Nie wiadomo. Dokumentacja klasy w ogóle nie porusza tego tematu, więc
    przypuszczalnie obowiązują ogólne zasady biblioteki (patrz HashMap) i
    języka (patrz JLS).

    --
    Maciej Sobczak * www.msobczak.com * www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: