(TAG20) 병렬 처리


프로세스 및 스레드

프로세스: 실행 중인 프로그램, 리소스 및 스레드로 구성

주제: 프로세스 내에서 실제 작업 수행

Python의 스레드

Python은 기본적으로 단일 스레드에서 순차적으로 실행되는 해석 언어입니다. 따라서 병렬 처리를 위해서는 별도의 모듈을 사용해야 합니다.

다중 스레드

에서 스레딩 수입
데프 일하다(직장 ID, 시작하다, , 결과):
합계 = 0
~을 위한~ 안에 영역(시작 끝):
합계 += 나는
결과.추가(합계)
만약에 __성__ == “__주로__”:
결과 = ()
th1 = 스레드(대상=작업, 인수=(하나, 0, 10000결과))
th2 = 스레드(목표=작업, 인수=(2, 10001, 20000결과))
th1.start()
th2.start()
일1. 가입하다() # join() 메서드는 Python에게 프로세스가 종료될 때까지 기다리라고 지시합니다.
th2.join()
누르다((결과))

멀티프로세싱(POOL)

에서 다중 처리 수입 수영장
데프 에프(엑스):
돌려 주다 더블 엑스

만약에 __성__ == ‘__주로__’:
p = 풀(4)
결과 = p.지도(에프,(하나,2,,4))
p.닫기()
누르다(결과)
다중 처리
에서 다중 처리 수입 소송 절차
데프 에프(엑스):
누르다(더블 엑스)
만약에 __성__ == ‘__주로__’:
숫자=(하나,2,,4)
proc1= 프로세스(대상=f, 인수=(숫자(0)))
proc1.start()
proc2= 프로세스(대상=f, 인수=(숫자(하나)))
proc2.start()
proc3= 프로세스(대상=f, 인수=(숫자(2)))
proc3.start()
proc4= 프로세스(대상=f, 인수=(숫자()))
proc4.start()
proc1.join()
proc2.join()
proc3.join()
proc4.join()

프로세스 대 풀

Pool과 Process 모두 병렬 처리에 사용되지만 차이점이 있습니다. 간단히 말해서 풀은 처리해야 하는 작업 집합입니다.
풀링되고 병렬 처리가 자체적으로 수행되며 Process는 각 프로세스에 대한 할당량을 명시적으로 지정합니다.
그것을 적어두고 작동하게하십시오.
• 물론 이는 이해를 돕기 위한 설명일 뿐 실제 둘의 차이는 좀 더 복잡하다.

멀티스레딩과 멀티프로세스

스레드는 가볍지만 Python의 GIL 정책으로 인해 대부분 I/O 처리에만 효과적이며 각 프로세스에는 고유한 스레드가 있습니다.
각 프로세스에는 자체 메모리 영역이 있으므로 첫 번째 프로세스 생성은 조금 더 오래 걸리고 더 많은 메모리를 사용합니다.
비싸지만 CPU 작업을 병렬로 할 수 있기 때문에 빠르다.


본 포스팅은 패스트캠퍼스 환불 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0

#패스트캠퍼스 #파캄챌린지 #0원등록금챌린지 #환불챌린지 #직원교육 #직장에서의 자기계발
#Facam인강리뷰 #패스트캠퍼스리뷰 #오공완

#컴퓨터공학·인공지능전공 필수과목 심화 슈퍼갭패키지 온라인