Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Python/파이썬] futures 비동기 작업 본문
퓨처스(Futures)는 파이썬에서 비동기 작업을 처리하기 위한 중요한 모듈 중 하나입니다. 이 모듈을 사용하면 비동기 작업을 쉽게 관리하고 조작할 수 있으며, 여러 작업을 동시에 실행하여 성능을 향상시킬 수 있습니다. 이제 몇 가지 예제를 통해 퓨처스 모듈의 활용법을 살펴보겠습니다.
예제 1: 비동기 작업 실행
import concurrent.futures
import time
def task(n):
print(f"작업 {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())
이 예제에서는 퓨처스를 사용하여 두 개의 작업을 비동기적으로 실행합니다. 각 작업은 2초간 대기 후 완료됩니다.
예제 2: 여러 작업 동시에 실행하기
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())
이 예제에서는 여러 작업을 동시에 실행하고, 각 작업이 완료되는 대로 결과를 출력합니다.
예제 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)]
results = concurrent.futures.wait(futures)
for future in results.done:
print(future.result())
이 예제에서는 모든 작업이 완료될 때까지 기다립니다. 그 후 각 작업의 결과를 출력합니다.