2014-04-27 51 views
3

我有一台笔记本电脑与CPU Intel Core i3,我想创建一个简单的程序Perl使用CPU容量的100%。 我已阅读约Threads并搜索有关平行运行它们,但我无法使用CPU的100%。强制perl程序使用所有CPU容量使用线程

我的代码:

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?

回答

4

你需要使线程实际上东西。例如。使他们从0到大数。睡觉不占用CPU时间。

3

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

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