dotnetomaniak.pl - Artykuły z tagiem semafordotnetomaniak.pl - Artykuły z tagiem semafor2024-03-29T15:41:44Zhttps://dotnetomaniak.pl/Tags/semaforCopyright (c) dotnetomaniak.pldotnetomaniak.pl Atom Generatordotnetomaniak.pl webmasteradmin@dotnetomaniak.plhttps://dotnetomaniak.pl/Assets/Images/fav.icohttps://dotnetomaniak.pl/Assets/Images/dotnetomaniak_logo-negatyw_small.png1025https://dotnetomaniak.pl/Piotr-Zielinski-Semafor-w-cPiotr Zieliński» Semafor w c#2012-05-21T18:25:47Z<div><div><div style="float:right"><img alt ="" src="http://dotnetomaniak.pl/Data/Thumbnails/small_UkzYRExZAUmnneSz2xJ36w.png"/></div><div>Dziś kolejny post o synchronizacji w c#. Semafor to bardzo popularna forma limitowania liczby wątków, które mogą mieć dostęp do danego kodu. Nie chcę omawiać tutaj podstaw semafora, ale myślę, że warto przypomnieć ogólną zasadę. Pseudokod (źródło Wikipedia):procedure V (S : Semaphore);
begin
(* Operacja atomowa: inkrementacja semafora *)
S := S +1;
end;
(* Operacja atomowa: dekrementacja semafora )
procedure P (S : Semaphore);
begin
( Cała operacja jest atomowa *)
repeat
Wait()...</div></div><div style="padding-top:4px"><a rev="vote-for" href="https://dotnetomaniak.pl/Piotr-Zielinski-Semafor-w-c"><img alt="Podbij ↑" src="https://dotnetomaniak.pl/image.axd?url=http%3a%2f%2fwww.pzielinski.com%2f%3fp%3d1176" style="border:0px"/></a></div></div>pzielinskihttps://dotnetomaniak.pl/Users/uL1CEj4isEuRvajW8gS3pQ2012-05-30T18:41:04Zhttps://dotnetomaniak.pl/Piotr-Zielinski-Semafor-w-c32620Dziś kolejny post o synchronizacji w c#. Semafor to bardzo popularna forma limitowania liczby wątków, które mogą mieć dostęp do danego kodu. Nie chcę omawiać tutaj podstaw semafora, ale myślę, że warto przypomnieć ogólną zasadę. Pseudokod (źródło Wikipedia):procedure V (S : Semaphore);
begin
(* Operacja atomowa: inkrementacja semafora *)
S := S +1;
end;
(* Operacja atomowa: dekrementacja semafora )
procedure P (S : Semaphore);
begin
( Cała operacja jest atomowa *)
repeat
Wait()...http://www.pzielinski.com/?p=1176http://dotnetomaniak.pl/Data/Thumbnails/small_UkzYRExZAUmnneSz2xJ36w.png