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

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

概述use Parallel::ForkManager; use LWP::Simple; my $pm=new Parallel::ForkManager(10); our $a =0; @LINK=( 10,203, 20, 20 ,20 ,10 ,101 ,01 ,10 ) ; for my $link (@LINK) { $pm->start and next;
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或其他一些机制来完成.

总结

以上是内存溢出为你收集整理的Perl如何在并行处理中共享全局变量?全部内容,希望文章能够帮你解决Perl如何在并行处理中共享全局变量?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1213582.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存