Multiprocessing (feat. python)
1474 ワード
コンピュータの処理速度を向上させる方法の一つです.
仕事があるとき、一人で仕事をするか、それとも4人で同時に仕事をするかで、仕事の処理速度に明らかな違いがあります.
まず、マルチプロセッシングを使用していない場合を見てみましょう.
[コード]
[コード]
[結果] serial processing : 8.653742551803589 multi processing : 2.5512523651123047
仕事があるとき、一人で仕事をするか、それとも4人で同時に仕事をするかで、仕事の処理速度に明らかな違いがあります.
まず、マルチプロセッシングを使用していない場合を見てみましょう.
[コード]
import time
num_list = ['PR1','PR2', 'PR3', 'PR4']
start = time.time()
def count(name):
for i in range(0, 100000000):
a = 10 + 100
print("finish : ",name)
for num in num_list:
count(num)
print("time :", time.time() - start)
[結果]finish : p1
finish : p2
finish : p3
finish : p4
time : 8.653742551803589
次に、マルチ処理されたコードを見てみましょう.[コード]
import multiprocessing
import time
num_list = ['p1','p2', 'p3', 'p4']
start = time.time()
def count(name):
for i in range(0, 100000000):
a = 1+2
print("finish : ",name)
if __name__ == '__main__':
pool = multiprocessing.Pool(processes = 4)
pool.map(count, num_list)
pool.close() # 병렬화 부분이 끝나면 나온다. 더 이상 pool을 통해서 새로운 작업을 추가하지 않을 때 사용.
pool.join() # 프로세스가 종료될 때까지 대기하도록 지시하는 구문. 병렬처리 작업이 끝날 때까지 기다린다.
print("time :", time.time() - start)
ちなみに結果は人それぞれ.[結果]
finish : finish : p4p1
finish : p3
finish : p2
time : 2.5512523651123047
処理速度に明らかな差が認められた.Reference
この問題について(Multiprocessing (feat. python)), 我々は、より多くの情報をここで見つけました https://velog.io/@dyeudsla/Multiprocessing-feat.-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol