-
Data: 2013-05-19 18:20:04
Temat: Re: Wybór języka/technologii pod konkretne wymagania, konkretnego przypadku ludzkiego :)
Od: A.L. <a...@a...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Sun, 19 May 2013 05:05:06 +0100, Andrzej Jarzabek
<a...@g...com> wrote:
>On 18/05/2013 02:34, A.L. wrote:
>> On Fri, 17 May 2013 07:33:00 +0100, Andrzej Jarzabek
>>>
>>> Może nie najszczęśliwiej dobrane słowo. Chodzi o to, że to to samo, co
>>> mutex i condition variable. Główny problem z użyciem tych konstruktów
>>> jest poprawny projekt, a w tym temacie synchronized/notify nie pomaga.
>>
>> Niestety, nie rozumiem.
>> Mozna prosic o szczegoly?...
>
>Po pierwsze, fakt istnienia w Javie synchronized i notify nie chroni
>przed problemami z wątkami.
Fakt. Tzreba umiec uzywac je w sposob wlasciwy
>I tak trzeba wiedzieć, które obiekty są
>dostępne z wielu wątków i trzeba sobie zaprojektować co ma być
>synchronized, w jaki sposób wątki się powiadamiają i tak dalej.
>
To tzreba zawsze wiedziec, niezaleznie ud uzytych narzedzi
>Ponadto - co prawda użycie synchronized i notify eliminuje część
>możliwych kombinacji z mutexami i condition variables (ale nadal beez
>gwarancji, że takie nie wystąpią, bo jawne mutexy też przecież w Jaie
>są), to wiedząc jak działają, ten sam efekt można w innych językach
>łatwo (przynajmniej w C++ łatwo) uzyskać przy pomocy mutex i condition
>variable.
Stwierdzenie jest trywialne. Java implementuje koncepcje "monitora"
wprowadzona pzrez Hoare i Brinch Hansena. Jest to konstrukcje wyzszego
poziomu niz "gole" mutexy. Oczywiscie, mozna zaimplementowac monitor
poslugujac sie wylacznie semaforami (co jest standardowym cwiczeniem
studenckim) ale to ma taka sama sile jak stwierdzenie ze "obiekty
takie jak w C++ sa niepotzrebne bo mozna je latwo zaimplementowac w C
poslugujac sie pointerami i makroprocesorem". Owszem, mozna. Ale
obiektowo programuje sie latwiej majac jezyk wspierajacy obiekty;
podobnie wielowatkowo programujesie latwiej majac jezyk wspierajacy
konstrukcje wyzszego poziomu niz mutex.
W Javie wystepuja mutexy, bo nei wszystkie problemy wzajemnego
wykluczania dadza sie zaimplementowac poslugujac sie "synchronized"
(albo byloby to bardzo nieczytelne). Do takich problemow nalezy na
przykald "wzajemne wykluczanie na grafie".
>Szczegółowo mam opisać jakbym taki odpowiednik zaimplementował
>w C++, czy nie ma takiej potrzeby?
>
Nie, nie ma potrzeby uczyc mnie programowania wielowatkowego. Uczylem
tego 15 lat
>Z tego co przeczytałem zresztą, to wygląda jakby C# oferował tę samą
>funkcjonalność przez klasę Monitor, polecenie lock i anotację
>[MethodImpl(MethodImplOptions.Synchronized)]. Mimo to OP przy wymaganiu
>o łatwej obsłudzę wątków wymienia swoje problemy z C# właśnie.
Owszem, C# oferuje bardzo podobny model monitora jak Java
Co nie znaczy ze monitor jest konstrukcja idealna... Sam Hoare wycofal
sie z tego konceptu proponujac w zamian CSP (Communicating Sequential
Processes)
A.L.
P.S. Jezeli ktos chce spojrzec glebiej na model wielowatkowosci w
javie, polacam nastepujaca prezentacje
http://www.cs.kent.ac.uk/projects/ofa/jcsp/csp-java-
model-6up.pdf
Następne wpisy z tego wątku
- 19.05.13 23:58 Andrzej Jarzabek
- 20.05.13 00:46 A.L.
- 20.05.13 13:03 wloochacz
- 20.05.13 18:46 Kviat
- 20.05.13 18:57 R.e.m.e.K
- 20.05.13 19:04 Stachu 'Dozzie' K.
- 20.05.13 19:14 Kviat
- 20.05.13 20:23 R.e.m.e.K
- 20.05.13 20:40 Stachu 'Dozzie' K.
- 20.05.13 20:57 R.e.m.e.K
- 20.05.13 21:56 Stachu 'Dozzie' K.
- 20.05.13 21:58 Andrzej Jarzabek
- 20.05.13 22:04 Kviat
- 20.05.13 22:33 Edek
- 20.05.13 23:41 R.e.m.e.K
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 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 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 <=