time.sleep — 스레드 또는 프로세스를 잠급니다?
Python for * nix time.sleep()
에서 스레드 또는 프로세스를 차단합니까?
스레드를 차단합니다. 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
응용 프로그램에 단일 스레드 만있는 경우를 제외하고 스레드를 절전 모드로 전환합니다.이 경우 스레드를 절전 모드로 설정하고 프로세스를 효과적으로 수행합니다.
잠자기 파이썬 문서는 이것을 지정하지 않으므로 혼란을 확실히 이해할 수 있습니다!
http://docs.python.org/2/library/time.html
실만.
스레드가 차단되지만 프로세스는 여전히 활성 상태입니다.
단일 스레드 응용 프로그램에서 이것은 잠자는 동안 모든 것이 차단됨을 의미합니다. 멀티 스레드 응용 프로그램에서는 명시 적으로 '슬립'하는 스레드 만 차단되며 프로세스 내에서 다른 스레드는 계속 실행됩니다.
프로세스에 단일 스레드가없는 경우 스레드 만
프로세스 자체는 실행할 수 없습니다. 실행과 관련하여 프로세스는 스레드의 컨테이너 일뿐입니다. 프로세스를 일시 중지 할 수 없음을 의미합니다. 단순히 처리 할 수 없습니다.
참고 URL : https://stackoverflow.com/questions/92928/time-sleep-sleeps-thread-or-process
'Programming' 카테고리의 다른 글
왜 포인터를 사용합니까? (0) | 2020.03.02 |
---|---|
mysqli 또는 PDO-장단점은 무엇입니까? (0) | 2020.03.02 |
SQL / mysql-distinct / UNIQUE를 선택하지만 모든 열을 반환합니까? (0) | 2020.03.02 |
스칼라리스트 연결, ::: vs ++ (0) | 2020.03.02 |
JUnit 4의 조건부 테스트 무시 (0) | 2020.03.02 |