본문 바로가기

파이썬

파이썬에서 명령문 병렬로 처리하기

728x90
반응형

OpenAPI에서 데이터를 받아오는 과정에서 순차적으로 처리하여 데이터를 가져오게 되면 시간이 많이 소요된다.
이를 순차적(일괄적)이 아닌 병렬로 처리하게 하면 많은 시간을 절약할 수 있을 것으로 생각할 수 있다. 그래서 그 방법의 예제를 만들어 봤다.

예를 들어 a,b,c,d,e라는 데이터를 얻고자하는 코드를 작성했는데 이 것을 한번에 실행시켜서 데이터를 가져올 수 있도록 하고 싶다.

import concurrent.futures

# 함수 예시: 데이터 수집
def a():
    # 데이터 수집 작업 수행
    data = "Data from A"
    return data

def b():
    # 데이터 수집 작업 수행
    data = "Data from B"
    return data

def c():
    # 데이터 수집 작업 수행
    data = "Data from C"
    return data

def d():
    # 데이터 수집 작업 수행
    data = "Data from D"
    return data

def e():
    # 데이터 수집 작업 수행
    data = "Data from E"
    return data

# 병렬 실행을 위한 Executor 생성
executor = concurrent.futures.ThreadPoolExecutor()

# 작업 함수 리스트
funcs = [a, b, c, d, e]

# 작업 함수를 병렬로 실행
futures = [executor.submit(func) for func in funcs]

# 실행된 작업 결과 수집
results = []
for future in concurrent.futures.as_completed(futures):
    result = future.result()
    results.append(result)

# 결과 출력
for result in results:
    print(result)

이렇게 하면 병렬적으로 데이터를 수집 할 수 있다. 

728x90
반응형