tmt1.pp 660 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. { %version=1.1 }
  2. {$mode objfpc}
  3. {$threading on}
  4. const
  5. threadcount = 100;
  6. stringlen = 10000;
  7. var
  8. finished : longint;
  9. threadvar
  10. thri : longint;
  11. function f(p : pointer) : longint;
  12. var
  13. s : ansistring;
  14. begin
  15. writeln('thread ',longint(p),' started');
  16. thri:=0;
  17. while (thri<stringlen) do
  18. begin
  19. s:=s+'1';
  20. inc(thri);
  21. end;
  22. writeln('thread ',longint(p),' finished');
  23. inc(finished);
  24. f:=0;
  25. end;
  26. var
  27. i : longint;
  28. begin
  29. finished:=0;
  30. for i:=1 to threadcount do
  31. BeginThread({$ifdef fpc}@{$endif}f,pointer(i));
  32. while finished<threadcount do
  33. ;
  34. writeln(finished);
  35. end.