Multi processing vs Multi threading

thread들은 같은 메모리를 공유하고 사용하지만 (lock을 사용하는 이유) 프로세스는 프로세스마다 고유의 메모리가 할당됨.

from multiprocessing import Process

def func_simple(length):
		sum_simple = 0
		for x in range(0, length):
				sum_simple += x
		print(f"Simple sum is {sum_simple}")

def func_square(length):
		square_simple = 0
		for x in range(0, length):
				square_simple += x * x
		print(f"square sum is {square_simple}")

def func_cube(length):
		cube_simple = 0
		for x in range(0, length):
				cube_simple += x * x * x
		print(f"cube sum is {cube_simple}")

def do_something():
		length = 5
		process_simple = Process(target=func_simple, args=(length, ))
		process_square = Process(target=func_square, args=(length, ))
		process_cube = Process(target=func_cube, args=(length, ))

		process_simple.start()
		process_square.start()
		process_cube.start()

		process_simple.join()
		process_square.join()
		process_cube.join()

do_something()

# Simple sum is 10  (1 + 2 + 3 ... 5)
# square sum is 30  (1 + 4 + 9 ... 25)
# cube sum is 100

Use a Pool of workers