동시 프로세스 - Process 객체의 메소드 속성
2531 단어 python 기본 노트
문서 목록
join 방법
주 프로세스가 하위 프로세스가 실행되었는지 확인하고 하위 프로세스가 실행된 후에야 계속 실행합니다. 그렇지 않으면 제자리에서 계속 막힙니다def test(name):
print('%s is running' % name)
time.sleep(3)
print('done')
if __name__ == '__main__':
p1 = Process(target=test, args=('p1',))
p1.start()
p1.join() #
print(' ')
# p1 is running
# done
#
join :
#
# p1 is running
# done
다시 한 번 보십시오. 여러 개의 하위 프로세스의 병렬인지 직렬인지 검사합니다. 만약 직렬이라면 하위 프로세스가 끝난 후에 실행될 것입니다. 실행 시간은 총계이고, 병렬이라면 실행 시간은 가장 긴 것입니다.def test(name, n):
print('%s is running' % name)
time.sleep(n) #
print('done')
if __name__ == '__main__':
start = time.time() #
p1 = Process(target=test, args=('p1', 3))
p2 = Process(target=test, args=('p2', 5))
p3 = Process(target=test, args=('p3', 2))
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
print(' ')
print(time.time()-start) #
# p1 is running
# p2 is running
# p3 is running
# done
# done
# done
#
# 5.219203472137451
이를 통해 알 수 있듯이join 방법은 메인 프로세스로 하여금 대기를 감지하게 하고 세 개의 하위 프로세스가 운영체제에 신호를 보낸 후에 동시에 실행하는 것이다.다음과 같은 경우에는 직렬입니다.
def test(name, n):
print('%s is running' % name)
time.sleep(n)
print('done')
if __name__ == '__main__':
start = time.time()
p1 = Process(target=test, args=('p1', 3))
p2 = Process(target=test, args=('p2', 5))
p3 = Process(target=test, args=('p3', 2))
p1.start()
p1.join()
p2.start()
p2.join()
p3.start()
p3.join()
print(' ')
print(time.time()-start)
# p1 is running
# done
# p2 is running
# done
# p3 is running
# done
#
# 10.628840684890747
프로세스 대상의 다른 방법 1:terminate와 isalive
terminate 신호를 운영체제에 보내서 프로세스를 닫습니다. 운영체제는 반응 시간이 필요합니다. 즉시 닫지 않습니다. isalive 가 아직 있는지 확인하고 True 또는 False 로 돌아갑니다.
프로세스 대상의 다른 속성:name과pid
name 보기 속성 이름,pid 보기 프로세스 번호def test(name, n):
print('%s is running' % name)
time.sleep(n)
print('done')
if __name__ == '__main__':
start = time.time()
p1 = Process(target=test, args=('p1', 3),name=' 1')
) #
p1.start()
print(p1.name,p1.pid,)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx + uwsgi + fllask 가 Liux 에서 의 배치 (신뢰성 확보)
현재 프로젝트 는 갑자기 새로운 서버 를 배치 해 야 하기 때문에 nginx + uwsgi + fllask 의 배치 방법 을 다시 배 워 야 합 니 다.인터넷 에 서 는 대부분 이 튜 토리 얼 이나 블 로그 가 말 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
def test(name):
print('%s is running' % name)
time.sleep(3)
print('done')
if __name__ == '__main__':
p1 = Process(target=test, args=('p1',))
p1.start()
p1.join() #
print(' ')
# p1 is running
# done
#
join :
#
# p1 is running
# done
def test(name, n):
print('%s is running' % name)
time.sleep(n) #
print('done')
if __name__ == '__main__':
start = time.time() #
p1 = Process(target=test, args=('p1', 3))
p2 = Process(target=test, args=('p2', 5))
p3 = Process(target=test, args=('p3', 2))
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
print(' ')
print(time.time()-start) #
# p1 is running
# p2 is running
# p3 is running
# done
# done
# done
#
# 5.219203472137451
def test(name, n):
print('%s is running' % name)
time.sleep(n)
print('done')
if __name__ == '__main__':
start = time.time()
p1 = Process(target=test, args=('p1', 3))
p2 = Process(target=test, args=('p2', 5))
p3 = Process(target=test, args=('p3', 2))
p1.start()
p1.join()
p2.start()
p2.join()
p3.start()
p3.join()
print(' ')
print(time.time()-start)
# p1 is running
# done
# p2 is running
# done
# p3 is running
# done
#
# 10.628840684890747
terminate 신호를 운영체제에 보내서 프로세스를 닫습니다. 운영체제는 반응 시간이 필요합니다. 즉시 닫지 않습니다. isalive 가 아직 있는지 확인하고 True 또는 False 로 돌아갑니다.
프로세스 대상의 다른 속성:name과pid
name 보기 속성 이름,pid 보기 프로세스 번호def test(name, n):
print('%s is running' % name)
time.sleep(n)
print('done')
if __name__ == '__main__':
start = time.time()
p1 = Process(target=test, args=('p1', 3),name=' 1')
) #
p1.start()
print(p1.name,p1.pid,)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx + uwsgi + fllask 가 Liux 에서 의 배치 (신뢰성 확보)
현재 프로젝트 는 갑자기 새로운 서버 를 배치 해 야 하기 때문에 nginx + uwsgi + fllask 의 배치 방법 을 다시 배 워 야 합 니 다.인터넷 에 서 는 대부분 이 튜 토리 얼 이나 블 로그 가 말 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
def test(name, n):
print('%s is running' % name)
time.sleep(n)
print('done')
if __name__ == '__main__':
start = time.time()
p1 = Process(target=test, args=('p1', 3),name=' 1')
) #
p1.start()
print(p1.name,p1.pid,)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx + uwsgi + fllask 가 Liux 에서 의 배치 (신뢰성 확보)현재 프로젝트 는 갑자기 새로운 서버 를 배치 해 야 하기 때문에 nginx + uwsgi + fllask 의 배치 방법 을 다시 배 워 야 합 니 다.인터넷 에 서 는 대부분 이 튜 토리 얼 이나 블 로그 가 말 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.