본문 바로가기
반응형

코루틴2

Python - asyncio 코루틴 await 이해하기 asyncio란 파이썬 3.5 버전부터 지원하기 시작한 코루틴을 사용할 수 있도록 지원해주는 라이브러리이다. asyncio를 사용하기 위해선 함수 앞에 async를 붙여서, 코루틴으로 만들 수 있다. 그리고 코루틴을 사용하고자 한다면, 해당 로직 앞에 await을 붙이면 된다. 즉 await를 붙인 코드에 대해 I/O 대기 등이 있을 경우 다른 코드 라인을 실행하는 구조 이다. 이때 await 뒤에 오는 코드는 코루틴으로 작성된 코드여야 한다. 예를 들어 await 뒤에 time.sleep과 같이 사용한다면 스레드가 중단된다, 코루틴으로 동작하려면, asyncio.sleep을 사용해야 한다. 특정 모듈의 경우 await을 붙여도 코루틴으로 동작하지 않으므로 await 호환성 체크를 해보기 바란다.(Dja.. 2024. 3. 25.
Python - 멀티 쓰레드(thread) 이해 멀티 쓰레드는 GIL로 인해 자원 손실이 존재하지만 기본적으로 I/O 대기 시간을 이용해서 실행하는 구조라고 할 수 있다. Thread를 활용할 수 있는 방법은 threading 라이브러리를 이용할 수 있으며, 가장 기본적인 방법은 다음과 같다. from threading import Thread import time def thread_task(number): print('thread start', number) time.sleep(int(number)) print('thread end', number) start = time.time() for x in range(1, 10): thread = Thread(target = thread_task, args = [x]) thread.start() end .. 2024. 3. 25.
반응형