我需要一个能100%使用我的cpu的功能。我有一个单核心CPU任何想法?
线程是否需要设置为高优先级?
答案 0 :(得分:7)
循环(无限)通常可以完成工作:
while true do begin
end;
显然迫使CPU在没有做任何有用的情况下达到100%应该只是为了学术目的而在你自己的硬件上,而不是在你想要发布的任何实际应用中。
答案 1 :(得分:5)
例如,通过下一个帖子:
unit Unit2;
interface
uses
Classes;
type
TLoadThread = class(TThread)
public
class var Stop: Boolean;
protected
procedure Execute; override;
public
constructor Create;
end;
implementation
constructor TLoadThread.Create;
begin
inherited Create;
FreeOnTerminate:= True;
end;
procedure TLoadThread.Execute;
begin
repeat until Stop;
end;
end.
用法示例:
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure LoadCPU;
begin
TLoadThread.Stop:= False;
TLoadThread.Create;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadCPU;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TLoadThread.Stop:= True;
end;
如果您的CPU有N个内核,请单击Button1
N次以达到100%的CPU负载;无需增加线程优先级。
答案 2 :(得分:0)
使用叉炸弹怎么样? http://en.wikipedia.org/wiki/Fork_bomb : - )