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或其他一些机制来完成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |