Опитвам се да накарам една нишка да промени глобална променлива и след това да накарам другите нишки да проверят тази глобална променлива и ако се промени, да извършат някакво действие. Прочетох документи за нишки на python, но всичко е много ново за мен и не съм сигурен кои са най-добрите опции за това, което се опитвам да направя, или дали това, което правя, е глупаво и има по-добър начин? Този код не променя инструкциите за цветен печат, както не бих очаквал. (Освен това, този код трябва да е в python 2.x за някои други модули, които използвам в действителния си проект.) ... може би трябва да използвам обект на опашка.
import random
import sys
import threading
import time
# Globals
output = None
class Green(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while True:
if output == 'green':
print 'green'
time.sleep(1)
class Red(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while True:
if output == 'red':
print 'red'
time.sleep(1)
class Color_Randomizer(threading.Thread):
def __init__(self):
global output
threading.Thread.__init__(self)
def run(self):
while True:
colors = ['red', 'green']
output = random.choice(colors)
time.sleep(1)
def main():
green = Green()
red = Red()
color_randomizer = Color_Randomizer()
print 'Starting green'
green.start()
print 'Starting red'
red.start()
print 'Starting color randomizer'
color_randomizer.start()
if __name__ == "__main__":
main()
return output
- защо го правиш? - person user2357112 supports Monica   schedule 05.05.2015