{Demonstrativ-Beispiel zur Threadprogrammierung mit der Unit threads}
{(c) haftmann#software Chemnitz 1996}
program ThreadExample;
uses threads;
{Thread-Prozedur}
procedure MyThread(C:Char); far;
var
I:Integer;
begin
I:=0;
repeat
Write(C);
Yield; Yield; {"Geringere Priorität"}
Inc(I);
if I=1000 then break; {Implizite Selbsttötung}
until false;
end; {Hier ruht ein Thread ('C') in Frieden (RIP)}
var
I:Integer;
P:PThread;
{Hauptprogramm}
begin
P:=CreateThread(@MyThread,LongInt('B'),4096);
CreateThread(@MyThread,LongInt('C'),1024);
I:=0;
repeat
Write('A');
Yield;
Inc(I);
if I=1000 then begin
KillThread(P); {Beispiel, fremden Thread ('B') zu töten}
end;
if I=3000 then break;
until false;
WriteLn;
end.
Detected encoding: OEM (CP437) | 1
|
|