eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingWielowątkowość - podstawowe pytanieRe: Wielowątkowość - podstawowe pytanie
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: Edek <e...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: Wielowątkowość - podstawowe pytanie
    Date: Sun, 25 May 2014 06:39:54 +0000 (UTC)
    Organization: ATMAN - ATM S.A.
    Lines: 52
    Message-ID: <lls37q$9ke$1@node1.news.atman.pl>
    References: <5...@g...com>
    NNTP-Posting-Host: 77-255-215-81.adsl.inetia.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1400999994 9870 77.255.215.81 (25 May 2014 06:39:54 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sun, 25 May 2014 06:39:54 +0000 (UTC)
    User-Agent: Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2)
    Xref: news-archive.icm.edu.pl pl.comp.programming:205830
    [ ukryj 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: