본문 바로가기
반응형

Gil2

[Python] MultiProcessing map() vs imap() | LIM 1. Python Multiprocessing에 대한 간단한 설명 2. Pool.map() 과 Pool.imap() 의 차이 3. Pool.imap_unordered() 🖥 Python MultiProcessing 멀티 프로세싱을 활용하면 여러 작업을 별도의 프로세스를 생성 후 병렬처리해서 더 빠르게 결과를 얻어낼 수 있다. 다만 멀티 프로세싱은 메모리 사용률이 높아진다는 단점이 존재한다. 멀티 프로세싱과 멀티 스레드 두 가지 방법이 존재하는데, 파이썬에서는 GIL(Global Interpreter Lock) 정책 때문에 cpu 위주의 작업에서는 멀티 스레딩은 오히려 성능을 떨어뜨린다. 즉 정리하자면, 쓰레드는 가볍지만 파이썬의 GIL정책으로 인해 I/O 처리를 하는 경우에만 주로 효과적이고 프로세스는 .. 2022. 9. 19.
[Python] Thread & Lock ( 쓰레드와 락 ) | LIM 📌 Thread(스레드)란? 스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다. 한 프로세스 내에서 여러 개의 작업들이 동시에 실행될 수 있어야 하는데 이것이 스레드이다. 스레드는 프로세스가 가지고 있는 메모리를 공유한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 파이썬 프로그램은 기본적으로 하나의 쓰레드(single thread)에서 실행된다.(파이썬의 GIL 정책) 따라서 코드를 병렬로 실행하기 위해서는 별도의 쓰레드를 생성해야 하는데, 파이썬 쓰레드를 생성하기 위해서는 threading모듈을 사용할 수 있다. 그렇다면 프로세스와 스레드의 차이는 무엇인가? 프로세스는 프로그램이.. 2022. 6. 15.
반응형