Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 두 개의 루프를 동시에 실행하는 방법

파이썬에서 두 개의 루프를 동시에 실행하기

파이썬에서 두 개의 루프를 동시에 실행하려면 multiprocessing 라이브러리를 사용해야 합니다. 이 라이브러리는 새로운 프로세스를 생성(spawn)하고, 해당 프로세스에 실행할 코드를 인자로 전달할 수 있게 해줍니다.

multiprocessing을 활용한 예제 코드

아래 예제는 두 개의 함수를 각각 별도의 프로세스에서 동시에 실행하는 방법을 보여줍니다.

from multiprocessing import Process

def loop_a():
    for i in range(5):
        print("a")

def loop_b():
    for i in range(5):
        print("b")

Process(target=loop_a).start()
Process(target=loop_b).start()

실행 결과가 매번 다른 이유

이 코드를 여러 번 실행해 보면 출력 결과가 실행 시점마다 달라질 수 있습니다. 그 이유는 운영체제가 두 프로세스의 실행 순서를 스케줄링하기 때문입니다. 즉, 어떤 프로세스의 print 문이 먼저 실행될지 보장할 수 없습니다.

참고: threading과의 차이

CPU 연산이 많은 작업이라면 multiprocessing이 적합하고, 단순히 I/O 대기 시간을 겹치고 싶다면 threading 모듈을 사용하는 것도 좋은 선택입니다. 다만 파이썬의 GIL(Global Interpreter Lock) 특성상 CPU 집약적인 작업에는 multiprocessing이 더 효과적입니다.