Orjanp Skrevet 19. september 2006 Del Skrevet 19. september 2006 (endret) La oss si at jeg har en prosess som kjører flere tråder. Hvis en av trådene avslutter, vil jeg at den andre også skal avslutte. # pseudocode STOP_FLAG = False class Thread1: while not STOP_FLAG: # some code here. if i_want_to_stop: STOP_FLAG = True class Thread2: while not STOP_FLAG: # some code here. if i_want_to_stop: STOP_FLAG = True start Thread1 start Thread2 Å bruke en global variabel fungerte ikke da det ikke er mulig å endre den runtime. Er løsningen å lage en egen klasse med variabelen STOP_FLAG, og som har egne funksjoner for å endre verdien på variabelen i klassen? Eller finnes det allerede noe innebygd i python som muliggjør dette? Eventuellt andre elegante måter å gjøre dette på. Tips? Ørjan... Endret 20. september 2006 av Orjanp Lenke til kommentar
lnostdal Skrevet 20. september 2006 Del Skrevet 20. september 2006 ser ut til at man kan bruke noe slikt som `global' til å deklarere at variablen er en global som kan endres fra trådene; slik: import threading theVar = 1 class MyThread ( threading.Thread ): def run ( self ): global theVar print 'This is thread ' + str ( theVar ) + ' speaking.' print 'Hello and good bye.' theVar = theVar + 1 for x in xrange ( 20 ): MyThread().start() (stjålet fra: http://www.devshed.com/c/a/Python/Basic-Th...ng-in-Python/1/ ) Lenke til kommentar
Orjanp Skrevet 20. september 2006 Forfatter Del Skrevet 20. september 2006 Endte med å bruke dictionary. FLAG{'STOP': False} class Thread1: while not FLAG['STOP']: # some code here. if i_want_to_stop: FLAG['STOP'] = True class Thread2: while not FLAG['STOP']: # some code here. if i_want_to_stop: FLAG['STOP'] = True start Thread1 start Thread2 Works like a charm. Uansett, takk for tipset. Ørjan... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå