Schrift
[thread]7164[/thread]

Threads und globale Variablen

Leser: 1


<< >> 2 Einträge, 1 Seite
Gast Gast
 2005-07-28 14:08
#56755 #56755
Hallo!
Ich lerne seit einiger Zeit Perl zu Programmieren und bin jetzt auf ein Problem gestoßen.
Es geht darum, globale Variablen in Threads zu verwenden.

Hier ein kleines Test-Programm:
Code: (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
#!/bin/perl
###########

use threads;
use strict;
use warnings;

our $nthr = 4;

{
threads->new(\&sub1,"1");
threads->new(\&sub1,"2");
threads->new(\&sub1,"3");
threads->new(\&sub1,"4");

while($nthr > 0){}
}

sub sub1 {
my $id = shift;
our $nthr -= 1;
sleep(rand(10));
print "thread done. ($id,n=". $nthr .")\n";
}


Dabei kommt dann bei jedem Thread n=3 raus und damit wird $nthr niemals 0!
1) Was mach ich falsch?
2) Kann man das evt auch noch anders lösen?
ptk
 2005-07-28 14:38
#56756 #56756
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Guck dir mal threads::shared an.
<< >> 2 Einträge, 1 Seite



View all threads created 2005-07-28 14:08.