답변:
스레드를 차단합니다. Python 소스에서 Modules / timemodule.c를 살펴보면을 호출 floatsleep()
하면 휴면 작업의 실질적인 부분이 Py_BEGIN_ALLOW_THREADS 및 Py_END_ALLOW_THREADS 블록에 래핑되어 현재 다른 스레드가 현재 실행되는 동안 계속 실행될 수 있음을 알 수 있습니다 하나는 자요. 간단한 파이썬 프로그램으로 이것을 테스트 할 수도 있습니다.
import time
from threading import Thread
class worker(Thread):
def run(self):
for x in xrange(0,11):
print x
time.sleep(1)
class waiter(Thread):
def run(self):
for x in xrange(100,103):
print x
time.sleep(5)
def run():
worker().start()
waiter().start()
다음과 같이 인쇄됩니다.
>>> thread_test.run()
0
100
>>> 1
2
3
4
5
101
6
7
8
9
10
102
응용 프로그램에 단일 스레드 만있는 경우를 제외하고 스레드를 절전 모드로 전환합니다.이 경우 스레드를 절전 모드로 설정하고 프로세스를 효과적으로 수행합니다.
잠자기 파이썬 문서는 이것을 지정하지 않으므로 혼란을 확실히 이해할 수 있습니다!
sleep(3)
말한다 : "초 초 경과 또는 신호가 무시되지 않는 도착할 때까지 잠 ()가 호출 스레드 잠을 수 있습니다." 그리고 파이썬 문서 버그가 있습니다.
프로세스 자체는 실행할 수 없습니다. 실행과 관련하여 프로세스는 스레드의 컨테이너 일뿐입니다. 프로세스를 일시 중지 할 수 없음을 의미합니다. 단순히 처리 할 수 없습니다.
sleep
명령을 일시 중지 시키는 프로세스를 실행합니다 .
메인 코드에서 실행되지 않으면 동일한 스레드에서 실행되면 스레드를 차단합니다.