1. 동기/비동기 프로그램 실습
페이지 정보
작성자 관리자 댓글 0건 조회 3,833회 작성일 20-08-17 21:36본문
1. 동기/비동기 프로그램 실습
$ vi test1.py
# -*- coding: utf-8 -*-
import time
def find_users_sync(n):
for i in range(1, n + 1):
print(f'{n}명 중 {i}번 째 사용자 조회 중 ...')
time.sleep(1)
print(f'> 총 {n} 명 사용자 동기 조회 완료!')
def process_sync():
start = time.time()
find_users_sync(3)
find_users_sync(2)
find_users_sync(1)
end = time.time()
print(f'>>> 동기 처리 총 소요 시간: {end - start}')
if __name__ == '__main__':
process_sync()
[jklee@localhost asyncio_example]$ python3 test1.py
3명 중 1번 째 사용자 조회 중 ...
3명 중 2번 째 사용자 조회 중 ...
3명 중 3번 째 사용자 조회 중 ...
> 총 3 명 사용자 동기 조회 완료!
2명 중 1번 째 사용자 조회 중 ...
2명 중 2번 째 사용자 조회 중 ...
> 총 2 명 사용자 동기 조회 완료!
1명 중 1번 째 사용자 조회 중 ...
> 총 1 명 사용자 동기 조회 완료!
>>> 동기 처리 총 소요 시간: 6.007043123245239
$ vi test2.py
# -*- coding: utf-8 -*-
import time
import asyncio
async def find_users_async(n):
for i in range(1, n + 1):
print(f'{n}명 중 {i}번 째 사용자 조회 중 ...')
await asyncio.sleep(1)
print(f'> 총 {n} 명 사용자 비동기 조회 완료!')
async def process_async():
start = time.time()
await asyncio.wait([
find_users_async(3),
find_users_async(2),
find_users_async(1),
])
end = time.time()
print(f'>>> 비동기 처리 총 소요 시간: {end - start}')
if __name__ == '__main__':
asyncio.run(process_async())
[jklee@localhost asyncio_example]$ python3 test2.py
3명 중 1번 째 사용자 조회 중 ...
2명 중 1번 째 사용자 조회 중 ...
1명 중 1번 째 사용자 조회 중 ...
3명 중 2번 째 사용자 조회 중 ...
2명 중 2번 째 사용자 조회 중 ...
> 총 1 명 사용자 비동기 조회 완료!
3명 중 3번 째 사용자 조회 중 ...
> 총 2 명 사용자 비동기 조회 완료!
> 총 3 명 사용자 비동기 조회 완료!
>>> 비동기 처리 총 소요 시간: 3.0045218467712402
[jklee@localhost asyncio_example]$
댓글목록
등록된 댓글이 없습니다.