티스토리 뷰
만약 1000 개의 웹 페이지를 불어와야 하는 상황이 있다.
이때 1개의 페이지를 요청하면 서버에서 처리해줘서 응답해 주는 시간은 1초라고 하자.
그러면 1000 개의 페이지를 응답 받으려면
1000 초가 걸린다.
사실 1개 요청하고 1초 동안 아무것도 안하고 기다리는 시간이 너무 아깝다.
이렇게 바쁠 때는 몸이 열개라도 모자라다는 말을 한다.
[multi thread]
멀티 스레드는 실제로 몸이 10개이다.
스레드를 일꾼으로 볼 수 있다.
n 개의 일꾼이 동시성을 가지고 일을 수행한다.
하지만 각 일꾼은 자기일이 끝나면 가만히 놀고 있을 수 있다.
[async]
한페이지를 로딩하면서 다른 페이지를 로딩한다.
스레드는 하나지만 굉장히 빨리 다른일로 전환하여 수행한다.
이게 가능하려면 함수를 실행결과를 기다리는 일반 함수에서 멀티 테스킹이 가능한 함수로 변경해야 한다.
이것을 코루틴(coroutine) 이라고 한다.
이것은 파이썬에서 제공하는 asyncio 모듈에서 지원한다.
[sync]
하나의 작업이 끝날 때까지 기다렸다가 다음 작업을 한다.
동시성이 없다.
단일 스레드 sync 이다.
'python lecture > concurrency' 카테고리의 다른 글
[edu] asyncio (이벤트 기반 프로그래밍, 비동기, 코루틴) (1) | 2019.03.05 |
---|---|
[edu] multiprocessing (멀티프로세싱) (0) | 2019.02.27 |
[edu] ProcessPoolExecutor (프로세스 풀 실행자) (0) | 2019.02.27 |
[edu] ThreadPoolExcutor (스레드 풀 실행자) (0) | 2019.02.26 |
[edu] thread condition (컨디션, 스레드) (0) | 2019.02.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 장고
- 파이썬
- 플러스친구 자동응답
- pycrypto
- 면접정답
- virtualenv
- PuTTYGen
- 면접답변
- Python
- 장고 플러스친구 자동응답
- 파이썬 강좌
- 파이썬 입문
- gitignore
- 이미지 비교
- 문과 코딩
- django
- 엑셀 비교
- admin.py
- GIT
- django chatbot
- 문서 비교
- 장고 카톡 자동응답
- chatbot
- Tistory
- gitlab
- 파이썬 프로그래밍
- 모바일 테마 적용
- 파이썬 독학
- wsgi
- 모바일 스킨 적용
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함