Also: Prozesssynchronisation, Teil 1: Petterson-Algorithmus
Prozess 1 will Datei bearbeiten:
Delphi-Quellcode:
flag[0] := True;
turn := 1;
while flag[1] and (turn = 1) do //Busy-Waiting
Sleep(1);
<Kritischer Code>
flag[0] := False;
Prozess 2 will Datei bearbeiten:
Delphi-Quellcode:
flag[1] := True;
turn := 0;
while flag[0] and (turn = 0) do //Busy-Waiting
Sleep(1);
<Kritischer Code>
flag[1] := False;
Flag und turn müssen
gemeinsame Variablen sein. Wie das in Delphi geht weiß ich nicht
, in C hab ichs mal gemacht
Delphi-Quellcode:
var
flag: array[0..1] of Boolean = (False, False);
turn: Integer = 0;
Erklärungen gibts sobald ich mehr Zeit habe, also heute nachmittag (Italien hat nämlich auch am Samstag schule
)