일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- vscode
- autoencoder
- Kaggle
- datascience
- GitHub Action
- 백준
- github
- 알고리즘
- docker
- FastAPI
- pytorch
- GCP
- leetcode
- python
- torchserve
- 코딩테스트
- NaverAItech
- Matplotlib
- FDS
- pep8
- 네이버AItech
- NLP
- Kubernetes
- DeepLearning
- GIT
- 완전탐색
- PytorchLightning
- rnn
- wandb
- 프로그래머스
- Today
- Total
목록concurrency (2)
Sangmun
동시성이라는 의미는 동시에 여러 가지 일이 발생하는 것을 의미하며 프로그래밍에서는 여러 작업을 동시에 처리하는 것을 의미한다. python에서는 해당개념을 언급할때 thread, task, multiprocessing이 언급되는데 진정한 의미에서 동시에 작업을 처리하는 것은 multiprocessing만 해당된다. 따라서 본 글에서는 위의 3가지 개념에 대한 차이점과 용도를 정리하고자 한다. 먼저 Threading과 Asyncio는 하나의 CPU 코어에서만 작업이 이루어지만 동시에 여러 작업을 왔다 갔다 하면서 처리하기 때문에 여러 작업을 동시에 수행하는 것처럼 보인다. 하지만 언급했듯이 실제로 작업을 수행하는 CPU 코어는 하나이다. 이러한 것을 multitasking이라고 하는데 Threading과 ..
python에서 thread는 동시성을 가지는 코드를 작성을 위해 필요로 한다. 하지만 multiprocessing과는 다르게 실제로 여러 개의 작업을 동시에 하는 것은 아니다. 단지 하나의 코어로 여러 작업을 왔다 갔다 하면서 동시에 처리하는 것처럼 보일뿐이다. Thread는 보통 외부의 이벤트를 오래동안 기다려야(I/O bound) 하는 작업에 적용하면 효과적이다. 하지만 많은 CPU연산을 필요로 하는 작업에는 Thread 보단 multiprocessing이 어울린다. Python Thread의 예시 아래 코드는 main section에서 thread를 하나 생성하여 원하는 함수를 실행하는 코드이다. threading.Thread 함수안에 target으로 실행하고자 하는 함수와 args에 변수를 넘겨..