Threading-script nicht drucken auf die Konsole

dies ist wirklich verwirrend mich, und ich kann nicht finden die Antwort.

import thread
import time
import random
import sys 

sys.stdout.flush()

def run_often(thread_name, sleep_time):
    while True:
        time.sleep(sleep_time)
        print "%s" % (thread_name)
def run_randomly(thread_name, sleep_time):
    while True:
        time.sleep(sleep_time)
        print "%s" % (thread_name)

thread.start_new_thread(run_often,("Often runs", 2)) 
thread.start_new_thread(run_randomly, ("Fast and random", random.random()))

das problem ist, dass diese nicht gedruckt. Im terminal, ich tippe python threading.py (das ist der Dateiname) und es wird kein Fehler ausgegeben. Damit der code kompiliert, aber es funktioniert einfach nicht drucken. In anderen Worten, dies ist, was passiert:

$ python threading.py
$ 

Ich Hinzugefügt sys.stdout.flush() denken, dass stdout benötigt werden zurückgesetzt, aber ohne Erfolg. Und wenn ich einen random-print-Anweisung wie "Hallo Welt" außerhalb der while-Schleife in eine Funktion, wird es gedruckt. Auch, wenn ich den genau gleiche code in ipython, druckt er perfekt. Das war kopiert aus einem YouTube-tutorial, und ist nicht mein eigener code.

Irgendwelche Ideen, warum es nicht gedruckt? Die Python, die bei mir läuft ist 2.7.8.
Vielen Dank im Voraus.

InformationsquelleAutor jason adams | 2015-06-23
Schreibe einen Kommentar