Notice
Recent Posts
Recent Comments
Link
SeouliteLab
파이썬: Future 모듈을 활용한 비동기 프로그래밍 본문
파이썬의 Future 모듈은 비동기 작업을 수행하는 데 유용한 도구입니다. 이 모듈을 사용하면 여러 작업을 동시에 처리하고, 작업이 완료될 때까지 기다리지 않고 다른 작업을 계속할 수 있습니다. 이제 몇 가지 예제를 통해 Future 모듈의 활용법을 알아봅시다.
예제 1: 비동기 작업 실행
import concurrent.futures
import time
def task(n):
print(f"작업 {n} 시작")
time.sleep(2)
print(f"작업 {n} 완료")
with concurrent.futures.ThreadPoolExecutor() as executor:
future1 = executor.submit(task, 1)
future2 = executor.submit(task, 2)
이 예제에서는 Future 모듈을 사용하여 두 개의 작업을 비동기적으로 실행합니다. 각 작업은 2초간 대기 후 완료됩니다.
예제 2: 결과 반환하기
import concurrent.futures
import time
def task(n):
time.sleep(2)
return f"작업 {n} 완료"
with concurrent.futures.ThreadPoolExecutor() as executor:
future1 = executor.submit(task, 1)
future2 = executor.submit(task, 2)
print(future1.result())
print(future2.result())
이 예제에서는 각 작업이 완료되면 결과를 반환합니다. Future 객체의 result()
메서드를 사용하여 각 작업의 결과를 얻습니다.
예제 3: 여러 작업 동시에 실행하기
import concurrent.futures
import time
def task(n):
time.sleep(n)
return f"작업 {n} 완료"
with concurrent.futures.ThreadPoolExecutor() as executor:
futures = [executor.submit(task, i) for i in range(1, 6)]
for future in concurrent.futures.as_completed(futures):
print(future.result())
이 예제에서는 여러 작업을 동시에 실행하고, 각 작업이 완료되는 대로 결과를 출력합니다.