반응형 Multithreading2 [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] Flask와 FastAPI로 Python 동시성 테스트 | LIM 📌 파이썬의 동시성 파이썬에서는 쓰레드를 사용하는 threading 모듈, 태스크를 사용하는 asyncio 모듈, 그리고 프로세스를 사용하는 multiprocessing 모듈이 있는데 여기서 병렬적으로 작업을 처리하는 것은 실제로 multiprocessing 뿐이다. threading 과 asyncio 모듈은 모두 하나의 프로세서를 사용하기 때문에 한 번에 하나씩 실행할 수밖에 없다. 서로 context switching 되면서 동시에 실행되는 것처럼 보이게 되는 것이다. 이렇게 해서 작업 시간을 줄인다. 📌 threading과 asyncio 차이(concurrency) 파이썬에서 동시적인 작업을 할 때 사용하는 threading과 asyncio의 차이점은 threading은 모듈에서 실행되고 있는 각 .. 2022. 7. 3. 이전 1 다음 반응형