dotnetomaniak.pl - Artykuły z tagiem lockdotnetomaniak.pl - Artykuły z tagiem lock2024-03-19T07:20:51Zhttps://dotnetomaniak.pl/Tags/lockCopyright (c) dotnetomaniak.pldotnetomaniak.pl Atom Generatordotnetomaniak.pl webmasteradmin@dotnetomaniak.plhttps://dotnetomaniak.pl/Assets/Images/fav.icohttps://dotnetomaniak.pl/Assets/Images/dotnetomaniak_logo-negatyw_small.png10025https://dotnetomaniak.pl/Asynchroniczny-Lock-w-C-Solidny-programista-blog-o-programowaniuAsynchroniczny Lock w C# – Solidny programista | blog o programowaniu2017-09-06T11:00:19Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_uR7hdQtqEkqLID82JGwlKA.png"/></div><div>Każdy z programistów, który choć raz miał do czynienia z wielowątkowością, chociaż raz musiał użyć konstrukcjo lock(). Dlaczego nie wolno tego używać razem z async/await? I co użyć zamiast tego? O tym w dzisiejszym wpisie.</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/Asynchroniczny-Lock-w-C-Solidny-programista-blog-o-programowaniu"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fsolidev.pl%2f2017%2f09%2f05%2fasynchroniczny-lock-w-c%2f" style="border:0px"/></a></div></div>ogrod87https://dotnetomaniak.pl/Users/9jAwmPUcHUe_EBWqGBGmkw2017-09-16T04:23:47Zhttps://dotnetomaniak.pl/Asynchroniczny-Lock-w-C-Solidny-programista-blog-o-programowaniu33110Każdy z programistów, który choć raz miał do czynienia z wielowątkowością, chociaż raz musiał użyć konstrukcjo lock(). Dlaczego nie wolno tego używać razem z async/await? I co użyć zamiast tego? O tym w dzisiejszym wpisie.http://solidev.pl/2017/09/05/asynchroniczny-lock-w-c/http://dotnetomaniak.pl/Data/Thumbnails/small_uR7hdQtqEkqLID82JGwlKA.pnghttps://dotnetomaniak.pl/Wyscig-o-dostep-MD-Tech-BlogWyścig o dostęp | MD Tech Blog2016-10-06T16:35:45Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_m4sIUfa1W0qK9x9ROItoEQ.png"/></div><div>Zaczął się nowy rok akademicki i dostałem zastrzyk informacji. Za nim podążył strzał ze strzelby zadaniami domowymi. Takie życie studenta. W każdym razie, wspomiany w tytule wyścig o dostęp to problem, który opiewa przedmiot Programowanie Współbieżne. O co tu chodzi?
Na początku komputery były proste i wykonywały wszystkie zadania liniowo...</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/Wyscig-o-dostep-MD-Tech-Blog"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.md-techblog.net.pl%2f2016%2f10%2fwyscig-o-dostep%2f" style="border:0px"/></a></div></div>manio143https://dotnetomaniak.pl/Users/03m9PeuZaE-jS6REtyFJMg2016-10-13T14:45:10Zhttps://dotnetomaniak.pl/Wyscig-o-dostep-MD-Tech-Blog11100Zaczął się nowy rok akademicki i dostałem zastrzyk informacji. Za nim podążył strzał ze strzelby zadaniami domowymi. Takie życie studenta. W każdym razie, wspomiany w tytule wyścig o dostęp to problem, który opiewa przedmiot Programowanie Współbieżne. O co tu chodzi?
Na początku komputery były proste i wykonywały wszystkie zadania liniowo...http://www.md-techblog.net.pl/2016/10/wyscig-o-dostep/http://dotnetomaniak.pl/Data/Thumbnails/small_m4sIUfa1W0qK9x9ROItoEQ.pnghttps://dotnetomaniak.pl/Piotr-Zielinski-Blokada-lock-a-bariera-oraz-cachingPiotr Zieliński » Blokada lock a bariera oraz caching2012-08-04T14:44:54Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_RJ0R4vS_PEOxtv3OPIo7vw.png"/></div><div>W ostatnim poście pisałem o barierze jako rozwiązaniu na uniknięcie problemów z związanych z optymalizacją dokonywaną przez CPU (re-ordering). Kilka postów wcześniej pisałem z kolei o buforowaniu danych i słowie kluczowym volatile. Jeśli nie wiedzie co to jest MemoryBarrier oraz Volatile zachęcam do przeczytania tych wpisów najpierw – bez nich dzisiejszy post będzie kompletnie niezrozumiały.
Wiemy, że caching oraz re-ordering może na niektórych architekturach spowodować trudne w analizie błędy. Dziś chc...</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/Piotr-Zielinski-Blokada-lock-a-bariera-oraz-caching"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.pzielinski.com%2f%3fp%3d1270" style="border:0px"/></a></div></div>pzielinskihttps://dotnetomaniak.pl/Users/uL1CEj4isEuRvajW8gS3pQ2012-08-14T12:35:06Zhttps://dotnetomaniak.pl/Piotr-Zielinski-Blokada-lock-a-bariera-oraz-caching1810W ostatnim poście pisałem o barierze jako rozwiązaniu na uniknięcie problemów z związanych z optymalizacją dokonywaną przez CPU (re-ordering). Kilka postów wcześniej pisałem z kolei o buforowaniu danych i słowie kluczowym volatile. Jeśli nie wiedzie co to jest MemoryBarrier oraz Volatile zachęcam do przeczytania tych wpisów najpierw – bez nich dzisiejszy post będzie kompletnie niezrozumiały.
Wiemy, że caching oraz re-ordering może na niektórych architekturach spowodować trudne w analizie błędy. Dziś chc...http://www.pzielinski.com/?p=1270http://dotnetomaniak.pl/Data/Thumbnails/small_RJ0R4vS_PEOxtv3OPIo7vw.pnghttps://dotnetomaniak.pl/lock-this-za-i-przeciwlock (this) – za i przeciw2012-01-13T12:44:08Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_weX8krttoU-HYSBo_bFsQA.png"/></div><div>autor:
Ostatnio przeglądając kod udało mi się znaleźć następujący fragment:lock(this){// Do something}
Do zsynchronizowania dostępu do współdzielonego zasobu używany jest obiekt, w którym występuje ten fragment kodu. Teoretycznie fragment ten jest poprawny. Co więcej w programie nie wystąpił żaden problem z zakleszczeniem.
Przeglądając literaturę możemy natrafić na następujące przykłady:
1. W O’Reilly Programming C# można spotkać następujący przykład użycia słowa kluczowego ...</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/lock-this-za-i-przeciw"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.jankowskimichal.pl%2f2012%2f01%2flock-this-%25E2%2580%2593-za-i-przeciw%2f" style="border:0px"/></a></div></div>padudahttps://dotnetomaniak.pl/Users/lTTRaS97HESSQ6Bhm-gUxg2012-01-23T11:10:49Zhttps://dotnetomaniak.pl/lock-this-za-i-przeciw33950autor:
Ostatnio przeglądając kod udało mi się znaleźć następujący fragment:lock(this){// Do something}
Do zsynchronizowania dostępu do współdzielonego zasobu używany jest obiekt, w którym występuje ten fragment kodu. Teoretycznie fragment ten jest poprawny. Co więcej w programie nie wystąpił żaden problem z zakleszczeniem.
Przeglądając literaturę możemy natrafić na następujące przykłady:
1. W O’Reilly Programming C# można spotkać następujący przykład użycia słowa kluczowego ...http://www.jankowskimichal.pl/2012/01/lock-this-%E2%80%93-za-i-przeciw/http://dotnetomaniak.pl/Data/Thumbnails/small_weX8krttoU-HYSBo_bFsQA.pnghttps://dotnetomaniak.pl/Piotr-Zielinski-Jak-nie-uzywac-blokad-lockPiotr Zieliński » Jak nie używać blokad lock2011-11-23T20:52:55Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_Hd3uJkXVLkOGP8U3V0OopA.png"/></div><div>Słowo lock służy do synchronizacji kodu między wątkami. Często jednak przeglądając kod widzę niepoprawne użycie. Rozważmy następujący przykład:publicclass OrderManager
{
publicvoid Submit()
{
lock(this)
{
//... }
}
}
Przedstawiona konstrukcja może spowodować wiele trudnych do wykrycia problemów. Co jeśli użytkownik naszej biblioteki również wykorzysta źle lock i napisze:OrderManager orderManager=new OrderManager();
//...lock(orderManager)
{
orderManager...</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/Piotr-Zielinski-Jak-nie-uzywac-blokad-lock"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.pzielinski.com%2f%3fp%3d999" style="border:0px"/></a></div></div>pzielinskihttps://dotnetomaniak.pl/Users/uL1CEj4isEuRvajW8gS3pQ2011-11-30T15:04:09Zhttps://dotnetomaniak.pl/Piotr-Zielinski-Jak-nie-uzywac-blokad-lock22230Słowo lock służy do synchronizacji kodu między wątkami. Często jednak przeglądając kod widzę niepoprawne użycie. Rozważmy następujący przykład:publicclass OrderManager
{
publicvoid Submit()
{
lock(this)
{
//... }
}
}
Przedstawiona konstrukcja może spowodować wiele trudnych do wykrycia problemów. Co jeśli użytkownik naszej biblioteki również wykorzysta źle lock i napisze:OrderManager orderManager=new OrderManager();
//...lock(orderManager)
{
orderManager...http://www.pzielinski.com/?p=999http://dotnetomaniak.pl/Data/Thumbnails/small_Hd3uJkXVLkOGP8U3V0OopA.pnghttps://dotnetomaniak.pl/mgrzegnet-Admin-on-Rails-lock-internalsmgrzeg.net - Admin on Rails :) : lock() internals2011-04-08T22:04:30Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_JzHdfOWLa0qnsYQXZum5Aw.png"/></div><div>Mechanizmy wspierające tworzenie aplikacji wielowątkowych są obecne w .NET od zarania dziejów. Istnieją klasy opakowujące funkcje i obiekty systemowe, są także mechanizmy dostępne tylko w .NET i udostępnione w postaci wygodnych konstrukcji językowych. Jedną z takich konstrukcji obecnych w C# jest słowo kluczowe lock, które usprawnia synchronizację między wątkami praktycznie bez wpływu na wydajność. Lock przeszedł drobny lifting w wersji 4.0, jednak szczegóły omówimy na końcu.
Metoda 1: Kod haszowy & lock
...</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/mgrzegnet-Admin-on-Rails-lock-internals"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fzine.net.pl%2fblogs%2fmgrzeg%2farchive%2f2011%2f04%2f08%2flock-internals.aspx" style="border:0px"/></a></div></div>Paweł Łukasikhttps://dotnetomaniak.pl/Users/lI7X-wDfeE2RoUfuiihoOg2011-04-18T07:04:28Zhttps://dotnetomaniak.pl/mgrzegnet-Admin-on-Rails-lock-internals3890Mechanizmy wspierające tworzenie aplikacji wielowątkowych są obecne w .NET od zarania dziejów. Istnieją klasy opakowujące funkcje i obiekty systemowe, są także mechanizmy dostępne tylko w .NET i udostępnione w postaci wygodnych konstrukcji językowych. Jedną z takich konstrukcji obecnych w C# jest słowo kluczowe lock, które usprawnia synchronizację między wątkami praktycznie bez wpływu na wydajność. Lock przeszedł drobny lifting w wersji 4.0, jednak szczegóły omówimy na końcu.
Metoda 1: Kod haszowy & lock
...http://zine.net.pl/blogs/mgrzeg/archive/2011/04/08/lock-internals.aspxhttp://dotnetomaniak.pl/Data/Thumbnails/small_JzHdfOWLa0qnsYQXZum5Aw.pnghttps://dotnetomaniak.pl/Grzegorz-Rycaj-Visual-Studio-Team-System-Quick-Hint-Zdejmowanie-cudzych-lock%C3%B3w-z-plik%C3%B3w-w-TFSGrzegorz Rycaj: Visual Studio Team System | Quick Hint: Zdejmowanie cudzych locków z plików w TFS2010-02-22T06:33:20Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_2hJw6iWWK0OOHjtkMD1PyA.png"/></div><div>Parę dni temu natknąłem się na następujący problem: chciałem usunąć branch z source control TFS, ale podczas próby wykonania takiej akcji, dostawałem komunikat, że jeden z developerów z zespołu posiada locki na plikach. Z pewnych względów developer ten nie mógł zdjąć swoich locków, więc musiałem mu trochę pomóc ;)</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/Grzegorz-Rycaj-Visual-Studio-Team-System-Quick-Hint-Zdejmowanie-cudzych-lock%C3%B3w-z-plik%C3%B3w-w-TFS"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fteamsystem.pl%2fpost%2fQuick-Hint-Zdejmowanie-cudzych-lockow-z-plikow-w-TFS.aspx" style="border:0px"/></a></div></div>gordon_shumwayhttps://dotnetomaniak.pl/Users/wjP7BbkPN0ic2_NSb2G06Q2010-02-28T17:25:54Zhttps://dotnetomaniak.pl/Grzegorz-Rycaj-Visual-Studio-Team-System-Quick-Hint-Zdejmowanie-cudzych-lock%C3%B3w-z-plik%C3%B3w-w-TFS2370Parę dni temu natknąłem się na następujący problem: chciałem usunąć branch z source control TFS, ale podczas próby wykonania takiej akcji, dostawałem komunikat, że jeden z developerów z zespołu posiada locki na plikach. Z pewnych względów developer ten nie mógł zdjąć swoich locków, więc musiałem mu trochę pomóc ;)http://teamsystem.pl/post/Quick-Hint-Zdejmowanie-cudzych-lockow-z-plikow-w-TFS.aspxhttp://dotnetomaniak.pl/Data/Thumbnails/small_2hJw6iWWK0OOHjtkMD1PyA.pnghttps://dotnetomaniak.pl/%C5%81ukasz-Sowa-Producent-i-konsument-przyk%C5%82ad-u%C5%BCycia-s%C5%82owa-kluczowego-lockŁukasz Sowa | Producent i konsument - przykład użycia słowa kluczowego lock2009-07-17T04:23:45Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_NP25LhZMuEes2MAqdsn0Sg.png"/></div><div>Niejednokrotnie podczas pisania aplikacji napotyka się na sytuację gdy jedna metoda produkuje pewne dane, inna natomiast w pewien sposób je konsumuje. Czasem dobrym pomysłem jest, w przypadku gdy produkowane dane są w pewien sposób podzielne na części, wykonywać produkcję i konsumpcję w równoległych wątkach. Tutaj pojawia się istotny problem z zagadnienia wielowątkowości - synchronizacja. Oba (wszystkie) wątki współdzielące dany zasób muszą z niego korzystać w pewien ustalony sposób, tak aby w danej chwili ...</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/%C5%81ukasz-Sowa-Producent-i-konsument-przyk%C5%82ad-u%C5%BCycia-s%C5%82owa-kluczowego-lock"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2flukaszsowa.pl%2fpost%2f2009%2f07%2f17%2fProducent-i-konsument-przyklad-uzycia-slowa-kluczowego-lock.aspx" style="border:0px"/></a></div></div>mackohttps://dotnetomaniak.pl/Users/n6HrySbCMkGkdWWjKfFEFA2009-07-22T22:06:02Zhttps://dotnetomaniak.pl/%C5%81ukasz-Sowa-Producent-i-konsument-przyk%C5%82ad-u%C5%BCycia-s%C5%82owa-kluczowego-lock3920Niejednokrotnie podczas pisania aplikacji napotyka się na sytuację gdy jedna metoda produkuje pewne dane, inna natomiast w pewien sposób je konsumuje. Czasem dobrym pomysłem jest, w przypadku gdy produkowane dane są w pewien sposób podzielne na części, wykonywać produkcję i konsumpcję w równoległych wątkach. Tutaj pojawia się istotny problem z zagadnienia wielowątkowości - synchronizacja. Oba (wszystkie) wątki współdzielące dany zasób muszą z niego korzystać w pewien ustalony sposób, tak aby w danej chwili ...http://lukaszsowa.pl/post/2009/07/17/Producent-i-konsument-przyklad-uzycia-slowa-kluczowego-lock.aspxhttp://dotnetomaniak.pl/Data/Thumbnails/small_NP25LhZMuEes2MAqdsn0Sg.pnghttps://dotnetomaniak.pl/C-sharp-Bezpieczny-dost%C4%99p-do-danych-4programmersnetC sharp :: Bezpieczny dostęp do danych - 4programmers.net2009-06-23T06:27:07Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_-hFb8dcyrUiwU_yQ3ysLwQ.png"/></div><div>Artykuł opisuje zagadnienia związane z równoczesnym dostępem do wspólnych elementów przez wiele wątków oraz możliwe konflikty - w języku C#. Nie znajdziecie tu natomiast podstaw wielowątkowości w C#, zakładam iż te są już znane. Przykłady napisane jako proste aplikacje konsolowe – krótkie i zwięzłe bez nadmiaru niepotrzebnych informacji (jednak na tyle samodzielne, że można je bez problemu odpalić przez zwykłe skopiowanie).</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/C-sharp-Bezpieczny-dost%C4%99p-do-danych-4programmersnet"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2f4programmers.net%2fC_sharp%2fBezpieczny_dost%25C4%2599p_do_danych" style="border:0px"/></a></div></div>padudahttps://dotnetomaniak.pl/Users/lTTRaS97HESSQ6Bhm-gUxg2009-07-02T16:16:43Zhttps://dotnetomaniak.pl/C-sharp-Bezpieczny-dost%C4%99p-do-danych-4programmersnet31430Artykuł opisuje zagadnienia związane z równoczesnym dostępem do wspólnych elementów przez wiele wątków oraz możliwe konflikty - w języku C#. Nie znajdziecie tu natomiast podstaw wielowątkowości w C#, zakładam iż te są już znane. Przykłady napisane jako proste aplikacje konsolowe – krótkie i zwięzłe bez nadmiaru niepotrzebnych informacji (jednak na tyle samodzielne, że można je bez problemu odpalić przez zwykłe skopiowanie).http://4programmers.net/C_sharp/Bezpieczny_dost%C4%99p_do_danychhttp://dotnetomaniak.pl/Data/Thumbnails/small_-hFb8dcyrUiwU_yQ3ysLwQ.pnghttps://dotnetomaniak.pl/Prymitywy-synchronizacyjne-jak-dobrze-je-znamyPrymitywy synchronizacyjne - jak dobrze je znamy?2009-03-13T07:54:22Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_R49vtXk1pU67iZYIzYdRJA.png"/></div><div>Trochę informacji o tym jak możemy synchronizować procesy i wątki w .NET.</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/Prymitywy-synchronizacyjne-jak-dobrze-je-znamy"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fmichalkomorowski.blogspot.com%2f2009%2f03%2fprymitywy-synchronizacyjne.html" style="border:0px"/></a></div></div>Paweł Łukasikhttps://dotnetomaniak.pl/Users/lI7X-wDfeE2RoUfuiihoOg2009-03-20T06:05:27Zhttps://dotnetomaniak.pl/Prymitywy-synchronizacyjne-jak-dobrze-je-znamy1870Trochę informacji o tym jak możemy synchronizować procesy i wątki w .NET.http://michalkomorowski.blogspot.com/2009/03/prymitywy-synchronizacyjne.htmlhttp://dotnetomaniak.pl/Data/Thumbnails/small_R49vtXk1pU67iZYIzYdRJA.png