less than 1 minute read

멀티 프로세싱

장점

  • 별도의 메모리 공간 사용가능

  • 코드가 간단함

  • 여러 CPU와 코어 활용

  • Cpython 에서 GIL 제한 피할수있음

  • 자식 프로세스의 중단 혹은 킬 가능

  • 파이썬 multiprocessing 모듈은 threading.Thread와 비슷한 인터페이스를 가진 유용한 추상화를 포함

  • CPU 바인딩 프로세싱을위한 cPython의 필수 기능

  • 가장 큰 장점은 프로세스간의 격리, 프로세스 충돌시 멀티프로세스는 서로에 대해 영향을 주지않지만 스레드는 모두 종료되어버리거나 데드락이 생김

단점

  • 자원이 많이 사용됨

멀티 스레딩

장점

  • 가볍다, 메모리 부족에서유용

  • 공유되는 메모리, 다른 컨텍스트에서 쉽게 상태에 엑세스 가능

  • 반응형 UI를 쉽게 만들수있음

  • GIL 를 적절히 해제하는 CPYTHON C 확장모듈은 병렬로 실행

단점

  • GIL 의 적용을 받음

  • 중단할수없거나 스레드를 죽일수없음

  • 코드는 일반적으로 이해하기 어려움

  • 1을 주의해야함

출처 : https://www.it-swarm.dev/ko/python/%EB%A9%80%ED%8B%B0-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8B%B1%EA%B3%BC-%EC%8A%A4%EB%A0%88%EB%94%A9-%ED%8C%8C%EC%9D%B4-%EB%B9%84%EA%B5%90/969791624/

Categories:

Updated: