Показать сообщение отдельно

  #2  
Старый 27.11.2009, 18:44
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
С нами: 8960826

Репутация: 2261


По умолчанию

Грузилка v1.0

описание:
Программа совершенно ничего не делает.
Но не делает она это в 4 потока с критическим системным приоритетом, таким образом способна отправить в полную кому совершенно любую, не важно скольки-ядерную систему.
Более мощный процессор, в данном случае, лишь позволяет программе ничего не делать с большей эффективностью, чем медленный.

код программы:
Код:
program Program1;

uses
 Classes;

const
  threads=4; //количество потоков, в которое работает программа. 
//Должно превышать количество ядер для того, 
//чтобы была возможность полностью загрузить их все.

type
  TMyThread = class(TThread)
     public
         constructor Create; overload;
     protected
        procedure Execute; override;
     end;

constructor TMyThread.Create;
begin
   Create(true);
   FreeOnTerminate := True;
   Priority := tpLower;
  // priority:=tpTimeCritical;
   Resume;
end;

//thread
procedure TMyThread.Execute;
begin
   while true do;
end;

//body
var
  i:integer;
  MyThread : array of TMyThread;
begin
  setlength(MyThread,threads);
  for i:=0 to threads-1 do MyThread[ i]:=TMyThread.Create;
  repeat until false;
end.
{example written by E.N.}
демо версия:
http://slil.ru/28262330
(в ней приоритет у потоков, создаваемых программой выставлен как низкий)

для того, чтобы версия стала злой - достаточно заменить в коде строку
Код:
Priority := tpLower;
на
Код:
priority := tpTimeCritical;
Язык программы - Delphi.
Злая версия отправляет систему в такой коматоз, что невозможно вызвать даже Диспетчер Задач, или же просто нажать конпку Пуск. Хотя мышка по-прежнему периодически дергается...

так же возможно выставление и других приоритетов, по желанию.
Цитата:
tpIdle = &HFFFFFFF1 -15 Lowest thread priority
tpLowest = &HFFFFFFFE -2 Indicates 2 points below normal priority for the priority class.
tpBellowNormal = &HFFFFFFFF -1 Indicates 1 point below normal priority for the priority class.
tpNormal = &H0 0 Indicates normal priority for the priority class.
tpAboveNormal = &H1 1 Indicates 1 point above normal priority for the priority class.
tpHighest = &H2 2 Indicates 2 points above normal priority for the priority class.
tpTimeCritical = &HF 15 Indicates a base-priority level of 15.

Последний раз редактировалось ErrorNeo; 27.11.2009 в 18:52..