Ana iş parçacığı ve çalışan iş parçacıklarında karma referansı $ref
nasıl paylaşırım?Karma referansı multiithread perl ile nasıl paylaşılır?
#!/usr/bin/perl
use strict;
use warnings;
use threads;
use threads::shared;
my $ref = {};
$ref->{0}->{abc} = 123;
$ref->{1}->{abc} = 223;
printf("%d\n", $ref->{0}->{abc});
printf("%d\n", $ref->{1}->{abc});
issue_all_jobs($ref);
while (1)
{
printf("%d\n", $ref->{0}->{abc});
printf("%d\n", $ref->{1}->{abc});
sleep(1);
}
sub issue_all_jobs
{
my ($ref) = @_;
for (my $i = 0; $i < 2; $i++)
{
$ref->{$i}->{handle} = new threads(\&issue_job, $ref, $i);
$ref->{$i}->{handle}->detach();
}
}
sub issue_job
{
my ($ref, $i) = @_;
$ref->{$i}->{abc} = 555123 + $i;
sleep(2);
}
İş parçacığı uzmanlığınızı SO'ya getirmeye devam ettiğiniz için teşekkür ederiz. Katkılarınızı takdir ediyorum. – Miller
Başlıca sebebi, iş parçacığı/forking'i öğrenmeye başladım - ve bu nedenle, OO - çünkü bildiğim kadarıyla, "perl inferior" un nasıl olduğunu anladığım kadarıyla, yüksek bir at üstünde olan bütün insanları tanıyorum. – Sobrique