PYTHON 프로그래밍

본문 바로가기
사이트 내 전체검색


PYTHON 프로그래밍
PYTHON 프로그래밍

1. 동기/비동기 프로그램 실습

페이지 정보

작성자 관리자 댓글 0건 조회 2,786회 작성일 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]$


댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.