[Tutor] Timed While Loops and Threads
Michael H. Goldwasser
goldwamh at slu.edu
Sun Dec 9 05:11:02 CET 2007
Hi everyone,
I'm having some fun combining two recent topics: the "Timed While
Loops" game and that of communication between threads. Here is an
example that allows a person to gather points in a while loop, but
only for a fixed period of time. It relies on a few shared variables
to coordinate the activity of the main thread and the secondary
thread.
import threading
def playGame():
global score, inPlay # shared with main thread
while inPlay:
raw_input('Press return to score a point! ')
if inPlay:
score += 1
print 'Score =', score
score = 0
inPlay = True
numSeconds = 5 # I didn't have patience for the 30 second version
T = threading.Thread(target=playGame)
T.start()
T.join(numSeconds)
inPlay = False # signal to secondary thread that game is over
print
print 'After', numSeconds, 'seconds, you scored', score, 'points.'
+-----------------------------------------------
| Michael Goldwasser
| Associate Professor
| Dept. Mathematics and Computer Science
| Saint Louis University
| 220 North Grand Blvd.
| St. Louis, MO 63103-2007
More information about the Tutor
mailing list