eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingWielowątkowość - podstawowe pytanieRe: Wielowątkowość - podstawowe pytanie
  • Data: 2014-05-25 08:39:54
    Temat: Re: Wielowątkowość - podstawowe pytanie
    Od: Edek <e...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Szarym od mżawki świtem Sat, 24 May 2014 04:29:43 -0700, Piotrek wyrzucił
    pustą ćwiartkę i oznajmił:

    > Wyjaśnijcie mi taką jedną rzecz. Niby mam ogólne,
    > teoretyczne pojęcie o wielowątkowości - wiem z czym
    > to się je, jakie problemy wiążą się z programowaniem
    > wielowątkowym, ale zawsze zastanawiała mnie taka jedna
    > fundamentalna kwestia: dlaczego programiści w ogóle muszą
    > być świadomi tego, że programują wielowątkowo, tzn. dlaczego
    > samodzielnie muszą używać muteksów i innych mechanizmów
    > synchronizacji wątków? Może bredzę, ale nie dałoby się tego
    > jakoś rozwiązać na poziomie samego języka? Dlaczego każda
    > instrukcja programu nie jest domyślnie atomowa, tzn. kompilator
    > przy generowaniu kodu sam nie emuluje atomowości
    > wstawiając gdzie trzeba różne locki/unlocki tak, żeby
    > w ogóle nie trzeba było o tym myśleć? Chodzi o to, że
    > byłoby to niewydajne?

    Fajnie byłoby, gdyby się dało, ale nie istnieje takie rozwiązanie.

    Są zbliżone, takie jak model przekazywania wiadomości - ma swoje
    plusy i minusy, ale nie wymaga jawnej synchornizacji, co nie znaczy,
    że na nic nie trzeba uważać. Zbliżona do celu jest pamięć transakcyjna,
    (prawie) moóżna jej używać tak jak napisałeś, prawie, bo i tak trzeba
    zaznaczyć granice transakcji i ewentualnie podtransakcji.

    W praktyce gdybyś mógł przedstawić przedstawić coś co byłoby
    spójne na pewno znajdzie się ktoś kto takie rozwiązanie zaimplementuje.
    Szczegóły techniczne zostawiając na później, pierwsze pytanie:
    skąd kompilator ma wiedzieć o co programiście chodzi? Najlepiej
    z przykładami, skoro

    > Dlaczego każda
    > instrukcja programu nie jest domyślnie atomowa, tzn. kompilator
    > przy generowaniu kodu sam nie emuluje atomowości
    > wstawiając gdzie trzeba różne locki/unlocki tak, żeby
    > w ogóle nie trzeba było o tym myśleć?

    .... powiedz, jak kompilator miałby zrozumieć

    a = b + c

    a) osobno odczyt zmiennych dodawanie i zapis?
    b) całe wyrażenie wraz z przypisaniem atomowo?
    c) co jeżeli typem jest liczba zespolona, czy w klasie Complex
    musi być informacja, że część rzeczywistą i urojoną traktuje się
    atomowo czyli zawsze razem, czy może kompilator też miałby się
    tego w jakiś sposób "domyśleć"?
    d) ?

    --
    Edek

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: