加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl如何在并行处理中共享全局变量?

发布时间:2020-12-16 06:07:30 所属栏目:大数据 来源:网络整理
导读:use Parallel::ForkManager; use LWP::Simple; my $pm=new Parallel::ForkManager(10); our $a =0; @LINK=( 10,203,20,10,101,01,10 ) ; for my $link (@LINK) { $pm-start and next; my $lo = ($link * 120.22 )*12121.2121212121212121*( 12121212.1212121
use Parallel::ForkManager;
  use LWP::Simple;
  my $pm=new Parallel::ForkManager(10);
  our $a =0;
 @LINK=( 10,203,20,10,101,01,10 ) ;
  for my $link (@LINK) {
    $pm->start and next;
    my $lo = ($link * 120.22 )*12121.2121212121212121*( 12121212.1212121+ $link);
    $a = $a+ $lo ;   
    print $a."n" ; 
    $pm->finish;
  };

  print $a ;

我试图使用并行fork Manager模块访问并行进程上的全局变量.程序结束时全局变量仍然保持不变..如何实现这一目标?是否有可能?

解决方法

如果程序没有启动并行进程,则问题将出现在第二个进程中

my $a = 0;

线.

但是,因为您正在启动并行进程,所以每个$a将在其内存空间中.这意味着每个$a是第一个$a的副本.由于这个原因,最后一个$a永远不会改变.

从一个进程获取值到另一个进程需要进行一些进程间通信.这可以通过套接字或IPC或其他一些机制来完成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读