Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Ich hab mal nach non-blocking input gesucht... Neben Lösungen, die pygame, tkinter, select/termios nutzten habe ich eine einfache Lösung bei http://forums.xkcd.com/viewtopic.php?f=11&t=99890 gefunden.
import thread
import time
def input_thread(input_buffer):
char = raw_input()
input_buffer.append(char)
def main():
input_buffer = []
thread.start_new_thread(input_thread, (input_buffer,))
for i in xrange(100):
print i
time.sleep(.5)
if input_buffer:
print input_buffer.pop(0)
main()
@jens: Ich meine das man `thread` jetzt schon *sehr lange* nicht mehr verwenden sollte.
Dann ist `char` für eine Zeichenkette mit in der Regel mehr als einem Zeichen ein falscher Name.
Eine Liste als Queue ist ineffizient und ob das nun threadsicher ist oder nicht hängt wahrscheinlich von der Python-Implementierung ab. Für so etwas gibt es aber `Queue.Queue` was sowohl effizient als auch threadsicher ist.