http://www.perlmonks.org?node_id=672790


in reply to threads::shared variables not really shared... or are they?

I'm not an expert on thread memory fundamentals, but I did find something interesting. If you add the 1M scalars to the array from within the threads, IT WILL gain the memory you seek. I had to reduce the number from 100 to 50, because at 100, it was killed by the kernel.
#!/usr/bin/perl use threads; use threads::shared; my @a : shared; for (1..10) { sleep 1; threads->new(\&foo); } sleep 1; system "grep VmSize /proc/$$/status"; <>; sub foo { my $s = " " x 1e6; for (1..50) { push @a, $s; } print @a . " elements in \@a\n"; }

I'm not really a human, but I play one on earth. Cogito ergo sum a bum