본문 바로가기

multiprocessing3

Python os.fork, os.wait 멀티프로세싱 3 학부에서 Linux 시스템 프로그래밍을 배울 때 멀티프로세싱을 다루었었다. 이때 fork, wait의 system call을 사용하였었다. 그런데 이 system call들을 python에서도 사용할 수 있다. 이 systam call들은 os 모듈을 사용하여 접근할 수 있다. 이를 이용하면 파이썬에서도 c에서와 유사하게 multi-processing을 할 수 있다. 단, Ms Windows처럼 이 system call들을 지원하지 않는 운영체제에서는 사용할 수 없다. fork c에서 fork는 fork를 사용한 시점에서 새로운 프로세스를 생성하는 system call이다. fork 이후에는 기존 프로세스와 새롭게 생성된 프로세스 모두에서 이후 코드들이 실행되게 한다. python에서의 fork 도 이와.. 2021. 11. 19.
Python multiprocessing.Pool 멀티프로세싱 2 Python에선 multiprocessing.Pool을 이용하여 멀티프로세싱을 할 수 있다. Process를 활용할 때는 우리가 직접 Process를 만들어서 그 Process위에서 작업을 돌렸다면, Pool은 지정된 개수만큼 프로세스를 미리 만들어 놓고, 그 프로세스들 위에서 작업을 돌리는 방식이다. Pool 사용하기 from multiprocessing import Pool if __name__ == '__main__': p = Pool(4) # do something here with Pool # blabla # blablabla p.close() # or p.terminate() p.join() 생성 처음 Pool을 생성할 때에 사용될 프로세스 수를 지정할 수 있다. 만약, 주어지지 않는다면 os.. 2021. 6. 7.
Python multiprocessing.Process 멀티프로세싱 1 파이썬에서 멀티프로세싱을 이용하여 여러 작업을 동시에 처리할 수 있다. multiprocessing의 Process를 사용하여 이를 간단히 구현할 수 있다. Process 사용 아래 코드는 Process를 사용하는 가장 간단한 방법이다. from multiprocessing import Process def func(string): print(string) if __name__ == "__main__": proc = Process(target=func,args=('process',)) proc.start() process Process의 서브클래스를 만들어 사용할 수도 있다. 이때, 반드시 run() 메서드를 오버 라이딩해주자. from multiprocessing import Process class .. 2021. 6. 3.