A
arraiy
Unregistered / Unconfirmed
GUEST, unregistred user!
先看代码:procedure TTestThread.Execute;var i, j, k: integer;
begin
inherited;
while not Terminateddo
begin
FreeOnTerminate := true;
for i := 0 to 10000000do
for j := 0 to 100000do
k := i;
sleep(1000);
end;
end;
在线程中,加入Sleep,可以让CPU空闲出来处理其它线程的请求,这样就不会导致一个线程吃光CPU的情况出现,上面代码中我加入了Sleep,但是在Sleep之前,有一个超大的循环,可能需要5分钟时间才能执行完,所以线程要等到5分钟之后才会执行Sleep,而在这5分钟内,CPU就是100%,被吃光了,这种现象要如何处理?
begin
inherited;
while not Terminateddo
begin
FreeOnTerminate := true;
for i := 0 to 10000000do
for j := 0 to 100000do
k := i;
sleep(1000);
end;
end;
在线程中,加入Sleep,可以让CPU空闲出来处理其它线程的请求,这样就不会导致一个线程吃光CPU的情况出现,上面代码中我加入了Sleep,但是在Sleep之前,有一个超大的循环,可能需要5分钟时间才能执行完,所以线程要等到5分钟之后才会执行Sleep,而在这5分钟内,CPU就是100%,被吃光了,这种现象要如何处理?