Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 서평단
- 통계학
- 블로그
- 매틀랩
- tensorflow
- Ga
- Google Analytics
- Python
- 서평
- Visualization
- 한빛미디어
- 한빛미디어서평단
- 월간결산
- Blog
- python visualization
- 텐서플로
- MATLAB
- matplotlib
- 파이썬 시각화
- MySQL
- 딥러닝
- 티스토리
- 시각화
- Tistory
- 파이썬
- 리눅스
- SQL
- Linux
- 독후감
- Pandas
Archives
- Today
- Total
pbj0812의 코딩 일기
[PYTHON] asyncio를 통한 비동기 처리 실습 본문
0. 목표
- python 비동기 처리 실습
1. 실습
- jupyter notebook 대신 python 사용 필요
* jupyter notebook에서 하기 위해서는 링크 참고
- python은 3.5 이상 버전 필요
1) 동기 처리
(1) 코드 작성
- 컴퓨터 끄는 알바를 하는데 한 대가 종료되기 까지 5초가 걸리고, 컴퓨터가 종료된 이후에 다음 컴퓨터를 종료시키는 형태
import time
def off_the_computer(n):
print(n,'번 째 컴퓨터 종료 시작')
time.sleep(5)
print(n,'번 째 컴퓨터 종료 완료')
def start_alba():
start = time.time()
off_the_computer(1)
off_the_computer(2)
off_the_computer(3)
end = time.time()
print(f'>>> 동기 처리 총 소요 시간: {end - start}')
if __name__ == '__main__':
start_alba()
(2) 실행 결과
- 1대에 5초씩 3대를 종료 하였으니 약 15초 소요
1 번 째 컴퓨터 종료 시작
1 번 째 컴퓨터 종료 완료
2 번 째 컴퓨터 종료 시작
2 번 째 컴퓨터 종료 완료
3 번 째 컴퓨터 종료 시작
3 번 째 컴퓨터 종료 완료
>>> 동기 처리 총 소요 시간: 15.009671926498413
2) 비동기 처리
(1) 코드 작성
- 마찬가지로 한 대를 종료하는 데 5초가 걸리지만 종료되기를 기다리지 않고 다른 컴퓨터도 종료시키는 형태
import time
import asyncio
async def off_the_computer(n):
print(n,'번 째 컴퓨터 종료 시작')
await asyncio.sleep(5)
print(n,'번 째 컴퓨터 종료 완료')
async def start_alba():
start = time.time()
await asyncio.wait([
off_the_computer(1),
off_the_computer(2),
off_the_computer(3)
])
end = time.time()
print(f'>>> 비동기 처리 총 소요 시간: {end - start}')
if __name__ == '__main__':
asyncio.run(start_alba())
(2) 실행 결과
- wait안에 list 형식으로 넣으니 랜덤하게 종료된 것을 확인할 수 있음
- 컴퓨터가 종료되길 기다리지 않고 다른 컴퓨터들에도 작업을 걸었으니 5초가 걸림
3 번 째 컴퓨터 종료 시작
1 번 째 컴퓨터 종료 시작
2 번 째 컴퓨터 종료 시작
3 번 째 컴퓨터 종료 완료
1 번 째 컴퓨터 종료 완료
2 번 째 컴퓨터 종료 완료
>>> 비동기 처리 총 소요 시간: 5.004363059997559
2. 참고
'ComputerLanguage_Program > PYTHON' 카테고리의 다른 글
[PYTHON] map 사용하기 (0) | 2020.06.02 |
---|---|
[PYTHON] Debugging (0) | 2020.06.01 |
[PYTHON] yield 실습하기 (0) | 2020.05.25 |
[PYTHON] 클래스 상속을 통한 공학용 계산기 제작 (0) | 2020.05.24 |
[PYTHON] class 를 이용하여 계산기 만들기 (0) | 2020.05.23 |
Comments