zoukankan      html  css  js  c++  java
  • Perl线程研究 thread

    我就直接贴代码了。没做什么注释,因为还在修改,目前还有点不太理解,跑去看了下云舒的代码,感觉那个应该有点启发。

    回头好好修改下。这些多线程模块还有点不太熟悉,主要跟进程弄乱了。

    得好好琢磨下,如果可以改成别的就更爽了。不过他们都说perl多线程不靠谱。。汗。。

    #!/usr/bin/perl
    use Net::Ping;
    use threads;
    use threads::shared;
    
    system('clear');
    print "please set the IP(C):";
    chomp($ip=<STDIN>);
    print "StartIP:";
    chomp($ip_start=<STDIN>);
    print "EndIP:";
    chomp($ip_end=<STDIN>);
    
    $p=Net::Ping->new();
    my @ip_group;
    my $min_thread:shared=0;
    my $max_thread=100;
    
    sub ip_count{
      while($ip_start != $ip_end){
        push @ip_group,("$ip."."$ip_start");
        $ip_start++;
      }
      return @ip_group;
    }
    while( 1 )
    {
       &ip_count;
       if( $min_thread <= $max_thread )
       {
        my $thread=threads->new(\&slep_ping,shift(@ip_group));
            $min_thread++;
       }
       else
       {
        while( $min_thread > $max_thread ){
               sleep(0.5);
            }
       }
    
       foreach $thread ( threads->list( threads::all ) )
       {
         if( $thread->is_joinable() )
            {
                $thread->join;
            }
       }
    }
    
    foreach $thread ( threads->list(threads::all) )
    {
        $thread->join();
    }
    
    sub slep_ping{
      local($host_ip)=shift;
      if($p->ping($host_ip))
      {
         print "$host_ip is access\n";
      }
      $min_thread--;
      $p->close();
    }
    
  • 相关阅读:
    URL中编码问题
    java得到当前时间
    java 集合类详解
    java String 详解
    java context 讲解
    java代码优化
    oracle 面试题
    查找算法总结
    10个经典的排序算法
    时间复杂度,相关排序算法时间复杂度的比较
  • 原文地址:https://www.cnblogs.com/xiaoCon/p/2931791.html
Copyright © 2011-2022 走看看