Thread Unerwartete Ergenisse mit Promise.start
(10 answers)
Opened by Kuerbis at 2015-09-02 12:52
Jetzt habe ichs nochmal mit "lock" probiert:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #!/usr/bin/env perl6 use v6; my $n = 50; my $runs = 10000; my $result; for ^$n { $result += $_ ** $_ } for ^$runs { my @p; my $sum; my $lock = Lock.new; for ^$n -> $i { #push @p, Promise.start( { $lock.protect( { $sum += $i ** $i } ) } ); push @p, Promise.start( { my $t = $i ** $i; $lock.protect( { $sum += $t } ); } ); } await @p; say "$sum $_"; die $_ if $sum != $result; } |