thread 와 concurrent.futures 사용으로 병렬 처리하기
1. thread 사용으로 병렬 처리
저번 코드에서 save_img 함수를 multi thread로 실행하면 좀 더 빠른 결과물을 얻을 수 있을 것 같다
1 | import requests |
작업결과
작업 시간이 1초대로 단축된 걸 확인 할 수 있다
2. concurrent.futures 사용으로 병렬 처리하기
concurrent.futures는 비동기 처리 고수준 인터페이스 모듈이다 이 모듈을 써서 작업 시간을 줄여보자
1 | import requests |
작업결과
마찬가지로 작업 시간이 1초대로 단축된 걸 확인 할 수 있다
결론
- I/O 작업이 있을 때 병렬 처리 작업을 활용하여 작업 시간을 단축시킬수 있다
- 상황에 따라 다르지만 될 수 있으면 thread 모듈보단 고수준 비동기 concurrent.futures 모듈을 사용하자 병렬처리 작업의 결과물을 리턴 받는 등 다양한 함수를 제공한다 참조링크