强制perl程序使用线程使用所有CPU容量

时间:2014-04-27 19:22:23

标签: multithreading perl parallel-processing cpu-usage

我有一台CPU Intel Core i3的笔记本电脑,我想在Perl中创建一个简单的程序,以便使用100%的CPU容量。 我已阅读有关Threads的信息并搜索并行运行它们,但我无法使用CPU的100%。

我的代码:

use strict;
use warnings;
use threads;
use threads::shared;
print "Starting main program\n";

my $t1 = threads->create(\&sub1, 1);
my $t2 = threads->create(\&sub1, 2);
my $t3 = threads->create(\&sub1, 3);
my $t4 = threads->create(\&sub1, 4);

$t1->join();
$t2->join();
$t3->join();
$t4->join();
print "End of main program\n";
sub sub1 {
my $num = 20;

print "started thread $num\n";
sleep $num;
print "done with thread $num\n";
return $num;
}

但在运行CPU后,使用率约为10%。

如何使用100%的CPU?

1 个答案:

答案 0 :(得分:3)

你没有使用任何CPU,因为线程正在休眠 - 它告诉操作系统基本上“我没有做任何事情,所以在其他地方使用你的资源”。

尝试一些计算 - 就像带有分区的嵌套循环,并将结果打印到/ dev / null而不是睡眠。