SeouliteLab

파이썬: Future 모듈을 활용한 비동기 프로그래밍 본문

카테고리 없음

파이썬: Future 모듈을 활용한 비동기 프로그래밍

Seoulite Lab 2024. 4. 17. 08:29

파이썬의 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())

이 예제에서는 여러 작업을 동시에 실행하고, 각 작업이 완료되는 대로 결과를 출력합니다.