Zpo-5-wyk-Slajd15: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
==Wyniki eksperymentu==
==Singleton: implementacja 2PL ==


[[Image:zpo-5-wyk-Slajd15.PNG|Wyniki eksperymentu]]
[[Image:zpo-5-wyk-Slajd15.PNG|Singleton: implementacja 2PL ]]




Wykres przedstawia średni czas oraz jego odchylenie standardowe w obu grupach (AdHoc – AH i Testy&Refaktoryzacja – TR), dla trzech faz rozwoju produktu. Warto zwrócić uwagę na dość dużą wartość odchylenia standardowego we wszystkich grupach, a także dużo gorszy wynik osiągnięty przez grupę TR we wszystkich fazach rozwoju produktu.
W języku Java implementacja tego wzorca napotyka na wiele trudności ze względu na sposób wykonywania programów i konstrukcję maszyny wirtualnej, w której są uruchamiane programy. M.in. w programie wielowątkowym istnieje możliwość, że wskutek przerwania wykonywania metody w momencie sprawdzania, czy instancja obiektu została już utworzona, kontrolę przejmie drugi wątek, który utworzy swoją własną instancję.
 
W celu rozwiązania tego problemu można zastosować zmodyfikowaną wersję algorytmu blokowania dwufazowego (2PL). Zakłada ona, że istnienie instancji obiektu jest sprawdzane dwukrotnie: na zewnątrz i wewnątrz bloku synchronizacji, w którym instancja ta jest tworzona. Taka konstrukcja, mimo pewnego narzutu związanego z synchronizacją wątków, pozwala uniknąć utworzenia wielu instancji klasy.




[[zpo-5-wyk-Slajd14 | << Poprzedni slajd]] | [[zpo-5-wyk-toc|Spis treści ]] | [[zpo-5-wyk-Slajd16 | Następny slajd >>]]
[[zpo-5-wyk-Slajd14 | << Poprzedni slajd]] | [[zpo-5-wyk-toc|Spis treści ]] | [[zpo-5-wyk-Slajd16 | Następny slajd >>]]

Aktualna wersja na dzień 11:03, 17 paź 2006

Singleton: implementacja 2PL

Singleton: implementacja 2PL


W języku Java implementacja tego wzorca napotyka na wiele trudności ze względu na sposób wykonywania programów i konstrukcję maszyny wirtualnej, w której są uruchamiane programy. M.in. w programie wielowątkowym istnieje możliwość, że wskutek przerwania wykonywania metody w momencie sprawdzania, czy instancja obiektu została już utworzona, kontrolę przejmie drugi wątek, który utworzy swoją własną instancję.

W celu rozwiązania tego problemu można zastosować zmodyfikowaną wersję algorytmu blokowania dwufazowego (2PL). Zakłada ona, że istnienie instancji obiektu jest sprawdzane dwukrotnie: na zewnątrz i wewnątrz bloku synchronizacji, w którym instancja ta jest tworzona. Taka konstrukcja, mimo pewnego narzutu związanego z synchronizacją wątków, pozwala uniknąć utworzenia wielu instancji klasy.


<< Poprzedni slajd | Spis treści | Następny slajd >>