multiprocessing
과 Process
의 경우 args
param을 설정하여 Value, Array
을 사용할 수 있습니다.Python : 다중 처리 풀에서 값 및 배열을 사용하는 방법
multiprocessing
with Pool
어떻게 사용할 수 있습니까? Value, Array.
문서 방법에는 아무 것도 없습니다.
from multiprocessing import Process, Value, Array
def f(n, a):
n.value = 3.1415927
for i in range(len(a)):
a[i] = -a[i]
if __name__ == '__main__':
num = Value('d', 0.0)
arr = Array('i', range(10))
p = Process(target=f, args=(num, arr))
p.start()
p.join()
print(num.value)
print(arr[:])
아래와 같은 코드에서 Value, Array
을 사용하려고합니다.
import multiprocessing
def do_calc(data):
# access num or
# work to update arr
newdata =data * 2
return newdata
def start_process():
print 'Starting', multiprocessing.current_process().name
if __name__ == '__main__':
num = Value('d', 0.0)
arr = Array('i', range(10))
inputs = list(range(10))
print 'Input :', inputs
pool_size = multiprocessing.cpu_count() * 2
pool = multiprocessing.Pool(processes=pool_size,initializer=start_process,)
pool_outputs = pool.map(do_calc, inputs)
pool.close() # no more tasks
pool.join() # wrap up current tasks
print 'Pool :', pool_outputs
원래 질문에 대한 답변을 수락하면 새로운 질문에 대한 새로운 문제를 열어야합니다. 그렇지 않으면 게시물은 끝이없고 관련없는 의견의 이해할 수없는 혼란이됩니다. –