
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如何在并行处理中共享全局变量?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)