Skip to Content
Python 프로그래밍, 제 4판
book

Python 프로그래밍, 제 4판

by Mark Lutz
May 2025
Intermediate to advanced
1632 pages
34h 19m
Korean
O'Reilly Media, Inc.
Book available
Content preview from Python 프로그래밍, 제 4판

5장. 병렬 시스템 도구

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

"원숭이에게 무엇을 해야 하는지 알려주기"

대부분의 컴퓨터 는 아무것도 하지 않는 데 많은 시간을 소비합니다. 시스템 모니터 도구를 시작하고 CPU 사용률을 보면 여러 프로그램을 실행 중일 때도 100%에 도달하는 경우는 거의 없습니다.[12] 디스크 액세스, 네트워크 트래픽, 데이터베이스 쿼리, 사용자가 버튼을 클릭할 때까지 기다리는 등 소프트웨어에 내장된 지연이 너무 많기 때문이죠. 실제로 최신 CPU 용량의 대부분은 유휴 상태에서 소비되는 경우가 많으며, 더 빠른 칩은 성능 요구 피크의 속도를 높이는 데 도움이 되지만 전력의 대부분은 거의 사용되지 않을 수 있습니다.

컴퓨팅 초기에 프로그래머들은 두 개 이상의 프로그램을 동시에 실행하여 사용하지 않는 처리 능력을 활용할 수 있다는 사실을 깨달았습니다. CPU의 주의를 일련의 작업으로 나누면 특정 작업이 외부 이벤트 발생을 기다리는 동안 CPU의 용량이 낭비될 필요가 없습니다. 이 기술은 일반적으로 병렬 처리 (때로는 "멀티프로세싱" 또는 "멀티태스킹"이라고도 함)라고 불리며, 많은 작업이 한 번에 겹쳐서 병렬로 수행되는 것처럼 보이기 때문에 시간적으로도 병렬 처리라고도 합니다. 이는 최신 운영 체제의 핵심이며, 우리 모두가 당연하게 여기게 된 다중 활성 창 컴퓨터 인터페이스의 개념을 탄생시켰습니다. 단일 프로그램 내에서도 처리를 병렬로 실행되는 작업으로 나누면 적어도 벽에 걸린 시계로 측정할 때 전체 시스템의 속도가 빨라질 수 있습니다.

마찬가지로 중요한 것은 최신 소프트웨어 시스템은 백그라운드에서 수행해야 하는 작업의 양에 관계없이 사용자에게 응답해야 한다는 것입니다. 요청을 처리하느라 프로그램이 멈추는 것은 일반적으로 용납할 수 없는 일입니다. 예를 들어 이메일 브라우저 사용자 인터페이스를 생각해보면, 서버에서 이메일을 가져오라는 요청을 받으면 프로그램은 네트워크를 통해 서버에서 텍스트를 다운로드해야 합니다. 이메일이 충분하거나 인터넷 링크가 느리면 이 단계만 완료하는 데 몇 분이 걸릴 수 있습니다. 하지만 다운로드 작업이 진행되는 동안에도 화면 다시 그리기, 마우스 클릭 등에 반응해야 하므로 프로그램 전체가 멈춰서는 안 됩니다.

병렬 처리는 여기서도 유용합니다. 이러한 장기 실행 작업을 프로그램의 나머지 부분과 병렬로 수행하면 일부 부분이 아무리 바빠도 시스템 전체가 응답성을 유지할 수 있습니다. 또한 병렬 처리 모델은 이러한 프로그램 등을 구조화하는 데 자연스럽게 적합하며, 일부 작업은 독립적인 병렬 엔티티로 실행되는 구성 요소로 더 쉽게 개념화 및 코딩할 수 있습니다.

Python에서 작업을 동시에 실행하는 기본적인 방법에는 -프로세스포크와 스폰된 스레드 두 가지가 있습니다. 기능적으로는 둘 다 기본 운영 체제 서비스에 의존하여 Python 코드의 비트를 병렬로 실행합니다. 절차적으로는 인터페이스, 이식성 및 통신 측면에서 매우 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

데이터 과학을 위한 통계: 데이터 분석에서 머신러닝까지 50가지 핵심 개념

데이터 과학을 위한 통계: 데이터 분석에서 머신러닝까지 50가지 핵심 개념

이준용, 피터 브루스, 앤드루 브루스

Publisher Resources

ISBN: 9798341656369Supplemental Content