您的位置:首页 > 职场人生

微软面试题:设计程序让其CPU占用呈…

2014-05-07 14:51 495 查看
#!/usr/bin/perl

use strict;

use warnings;

use Win32;

use constant COUNT
=> 200;

use constant SPLIT
=> 0.01;

use constant PI

=> 3.14159265;

use constant INTERVAL => 300;

use constant TRUE
=> 1;

main();

sub main {

my @busySpan; # array of busy times

my @idleSpan; # array of idle times

my $half = INTERVAL / 2;

my $radian = 0.0;

my $i;

for ($i = 0; $i < COUNT; $i++) {

$busySpan[$i] = int(($half +
(sin(PI * $radian) * $half)));

$idleSpan[$i] = INTERVAL -
$busySpan[$i];

$radian += SPLIT;

}

my $startTime = 0;

my $j = 0;

while (TRUE) {

$j = int($j % COUNT);

$startTime =
Win32::GetTickCount();

while ((Win32::GetTickCount()
- $startTime) <= $busySpan[$j]) {};

Win32::Sleep($idleSpan[$j]);

$j++;

}

return 0;

}

来至:http://www.shineyouth.com/thread-240-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: