-
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
Następne wpisy z tego wątku
- 27.05.14 10:52 Adam Wysocki
- 04.06.14 19:59 Piotrek
- 04.06.14 20:02 Edek
- 04.06.14 21:10 Piotrek
- 04.06.14 22:19 Edek
Najnowsze wątki z tej grupy
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Gdańsk => Software .Net Developer <=
- 2024-11-08 Akumulator Hyundai
- 2024-11-08 Warszawa => Manager/Specialist e-commerce (B2C) <=
- 2024-11-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-08 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-08 znaj podstawe
- 2024-11-08 Chrzanów => Specjalista ds. public relations <=
- 2024-11-08 Warszawa => Data Scientist / Data Engineer (predictive modelling) <=
- 2024-11-08 zbrojone wężyki hamulcowe