|
@@ -0,0 +1,39 @@
|
|
|
+{$mode objfpc}
|
|
|
+
|
|
|
+uses
|
|
|
+{$ifdef unix}
|
|
|
+ cthreads,
|
|
|
+{$endif}
|
|
|
+ sysutils,
|
|
|
+ classes;
|
|
|
+
|
|
|
+type
|
|
|
+ tmythread = class(tthread)
|
|
|
+ fs: ansistring;
|
|
|
+ constructor create(const s: ansistring);
|
|
|
+ procedure execute; override;
|
|
|
+ end;
|
|
|
+
|
|
|
+constructor tmythread.create(const s: ansistring);
|
|
|
+begin
|
|
|
+ fs:=s+'a';
|
|
|
+ freeonterminate:=true;
|
|
|
+ inherited create(true);
|
|
|
+end;
|
|
|
+
|
|
|
+procedure tmythread.execute;
|
|
|
+begin
|
|
|
+ sleep(60);
|
|
|
+ writeln('done');
|
|
|
+end;
|
|
|
+
|
|
|
+var
|
|
|
+ a: array[1..100] of tmythread;
|
|
|
+ i: longint;
|
|
|
+begin
|
|
|
+ for i:=low(a) to high(a) do
|
|
|
+ a[i]:=tmythread.create('b');
|
|
|
+ for i:=low(a) to high(a) do
|
|
|
+ a[i].resume;
|
|
|
+ sleep(60);
|
|
|
+end.
|