2011-01-13 3 views
0

좋아요. 잠깐 time.sleep (x) 함수의 time 모듈을 사용 해왔다. 그러나 쉘을 일시 중지하지 않을 것이므로 사용자가 계산 중에 프로그램을 계속 사용할 수 있어야한다.업데이트를 위해 어떤 Python 모듈을 사용해야합니까?

더 구체적으로하려면 함수를 실행하기 전에 5 초 동안 기다려야하는 프로그램이 있다고 가정 해 봅시다. 이 time.sleep() 함수를 사용하여 사용자는 잠자기 상태이므로 아무 것도 입력 할 수 없습니다. 그러나 사용자가 셸을 사용할 수있는 동안 백그라운드에서 "5 초 카운팅"하려면 파이썬이 필요합니다. 이것이 가능한가?

+1

귀하의 질문은 매우 불분명하지만, 당신이 스레드가 필요해 보입니다. – Falmarri

+1

이것은 귀하의 이익과 관련이있을 수 있습니다 : http://stackoverflow.com/questions/3226628/non-blocking-wait-in-python – birryree

답변

4

threading? 당신은 계산 또는 여기

time.sleep

자고 할 곳 당신은 당신이 time.sleep와 스레딩을 이해하고 사용하는 데 도움이 될 예는 하나의 작업자와 다른 별도의 노동자에서 작업의 조각을 처리해야

import threading 
import time 

def sleeper(): 
    print 'Starting to sleep' 
    time.sleep(10) 
    print 'Just waking up..' 
    print 'snooze' 
    print 'oh no. I have to get up.' 

def worker(): 
    print 'Starting to work' 
    time.sleep(1) # this also a work. :) 
    print 'Done with Work' 

t = threading.Thread(name='sleeper', target=sleeper) 
w = threading.Thread(name='worker', target=worker) 

w.start() 
t.start() 
+0

좋아요, 대답을 수락하기 전에 ... 한 가지 더 알고 싶습니다. 나는 스레딩 모듈 예제를보고 있었고 다음과 같이 사용하려고 시도했다. def hello() : "hello, world"프린트 t = Timer (30.0, 안녕하세요) t.start() # 30 초 후, "hello, world"가 인쇄 될 것입니다. 그러나 서브 클래스 타이머 모듈을 찾을 수 없기 때문에이 방법이 작동하지 않습니다. 왜 어떤 아이디어? –

+0

나는이 문제를 파악했다. 어쨌든, 고마워! –

+0

이해하기 쉬운 예제를 추가했습니다. :) 그래 타이머도 비슷한 효과로 사용할 수 있습니다. Timer는 스레드의 하위 클래스이며 지연된 병렬 실행을 구현하기 쉽습니다. 감사. –

관련 문제