0
저는 여전히 파이썬을 배우고 있습니다. 나에게,이 코드는 정확히 어떻게 '풀 매핑'을 보여주는에 대해 완전히 명확하지 않다 https://docs.python.org에서 작동합니다 : 그것의 분리에 별도로 목록 [1, 22, 333]의 각 인덱스를 연결 ...파이썬 다중 처리 pool.map 설명
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
numb_list = [1, 22, 333]
with Pool(5) as p:
print(p.map(f, numb_list))
그래서 동일한 기능의 프로세스가 모두 다른 코어에서 실행되고 있습니까? 그렇다면 특정 반복에 대한 세부 정보를 어떻게 확인할 수 있습니까? 나는 풀 기능을 실행하는 각 프로세스에 한 번에 전체 목록을 삽입합니까 [1, 22 (333)] 목록에
def f(x):
if len(x) >= 3:
print("Big input")
return x*x
을 특정 요소의 길이를 알고 싶어하기 때문에이 기능을 편집 예 경우 또는 목록의 일부? 이 방법으로 요소 입력의 길이를 확인할 수 있습니까? 지도 대신 for 루프를 사용하여 현재 반복 또는 요소를 구분할 수있는 방법이 있습니까?
from multiprocessing import Process
results = []
for item in numb_list:
process = Process(target=f, args=(item,))
process.start()
# insert process result in to results
map
이 반복 가능한 매개 변수를 풀고 각 프로세스에 각 항목을 보내드립니다 :
맞습니다. 각 요소를 별도의 프로세스로 나누어 전달합니다. –
오케이. 그래서 나는 함수 내에서 현재 프로세스의 목록에서 단일 요소 여야하는 x 길이를 확인할 수있을 것이라고 추측합니다. 많은 사람들이 병렬 프로그램을 잘 코딩하지 못합니까? –
예, 맞습니다. –