【发布时间】:2011-04-16 08:28:50
【问题描述】:
我很好奇什么是多线程。我在 StackOverflow 上收到的答案中到处都听到过这个名字,但我不知道它是什么,所以我的主要两个问题是它是什么以及我如何从中受益?
编辑:
好的,因为第一个问题并没有真正得到我想要的答案,所以我会继续这样做..
即使在其他语言中,我也从未听说过“线程”。这是我在网上找到的一个例子:
#!/usr/bin/perl
use strict;
use warnings;
use threads;
use threads::shared;
print "Starting main program\n";
my @threads;
for ( my $count = 1; $count <= 10; $count++) {
my $t = threads->new(\&sub1, $count);
push(@threads,$t);
}
foreach (@threads) {
my $num = $_->join;
print "done with $num\n";
}
print "End of main program\n";
sub sub1 {
my $num = shift;
print "started thread $num\n";
sleep $num;
print "done with thread $num\n";
return $num;
}
我似乎无法理解它在做什么。任何人都可以发光吗? 问候, 菲尔
【问题讨论】:
-
您尝试阅读维基百科 - en.wikipedia.org/wiki/Multithreading 吗? perl 中的线程有一些特殊之处,但总体思路与所有其他语言中的相同。
-
安全穿线小蚱蜢
-
您是否运行了该 Perl 代码并观察了输出?
-
是的,但我可以在不使用线程的情况下做出相同的输出::
-
实际上...不,我不能...反正效率不高...嗯,让我回来...
标签: multithreading