码迷,mamicode.com
首页 > 编程语言 > 详细

多线程中的超时, 如Socket超时

时间:2017-08-29 12:37:49      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:await   int   nbsp   font   new   线程   port   code   time   

my $timeout = 5;
for 21,22,80,3306 ->$port {
print "-->$port\r";
#say "\r";
await Promise.anyof(
    Promise.in($timeout),
    start {
      #sleep 6;
        my $c = IO::Socket::INET.new(:host<localhost>, :port($port));
        say "-->$port [Open]" if so $c;
        my $p = $c.recv();
        say $p;
    },
);
}

 

anyod里面的线程如果有一个返回 kept时, 就马上返回, 设置超时时间为 $timeout 后, 当第一个 Promise.in($timeout) 时间到达时会返回, 里面的 Socket就不能继续运行了。

 

多线程中的超时, 如Socket超时

标签:await   int   nbsp   font   new   线程   port   code   time   

原文地址:http://www.cnblogs.com/perl6/p/7447461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!