2013-07-27 4 views
1

한 스레드의 메시지를 인쇄하는 python 스크립트를 만들고 다른 스레드로의 입력을 기다리고 싶습니다. 이것이 가능한가? 그렇다면 어떻게?파이썬 입출력 스레딩

체제 : Windows 7

언어 : 파이썬 내가 이것을 시도 2.7

(다른 질문에서 수정) :

import threading 
import time 

def message_loop(): 
    while True: 
     time.sleep(1) 
     print "Hello World" 

thread = threading.Thread(target = message_loop) 
thread.start() 

while True: 
    input = raw_input("Prompt> ") 

그러나 무슨 일이다 : 나는 때까지 프로그램이 대기 Hello World을 출력하기 전에 입력을 완료했습니다.

+0

커피의 질문에 덧붙여서 무엇을 읽었습니까? 파이썬 문서를 보셨습니까? –

+0

설명서를 읽었으며 다른 사람이 작성한 코드를 시도했지만 어떤 결과가 나오면 코드가 입력을 누른 다음 출력을 – lewisjb

답변

2

절대적으로 가능합니다. 당신은 출력을 인쇄하는 기능이있는 경우는 threading 모듈을 사용하여 다른 스레드를 시작할 수 있습니다 (의는 print_output을 부르 자) :

>>> import threading 
>>> my_thread = threading.Thread(target=print_output) 
>>> my_thread.start() 

당신은 지금 당신의 출력을 받기 시작한다. 그런 다음 주 스레드에서 입력 비트를 실행할 수 있습니다. 새 스레드에서 실행할 수도 있지만 기본 스레드에서 입력을 실행하면 몇 가지 장점이 있습니다.

+0

그냥 쓰레드 방법을 알려줍니다. 원하는 방식대로하지 않습니다. ~까지 – lewisjb

+0

@Pyro : 문제를 재현 할 수 없습니다. 그것은 저를 위해 잘 작동합니다, 2.7이 아니라 2.6이고 Windows가 아닙니다. – icktoofay