- 论坛徽章:
- 42
|
本帖最后由 laputa73 于 2013-08-04 19:02 编辑
不明白的你的想法.
你是觉得一次10000个并发太多吗?
那就限制一下并发不就好了?- use Coro;
- use AnyEvent::Ping;
- my $cocurrent = 100; # 并发数
- my @todoList = map { "192.168.6." . $_ } (1 .. 254); #
- my @coro;
- my $ping = AnyEvent::Ping->new;
- doit() foreach 1..$cocurrent;
- sub doit{
- my $ip = shift @todoList;
- return if not defined $ip;
- push @coro, async {
- $ping->ping($ip, 1, Coro::rouse_cb );
- my @result = Coro::rouse_wait;
- print "Result($ip): ", $result[0][0][0]," in ", $result[0][0][1], " seconds\n";
- doit();
- }
- }
复制代码 |
|