아날로그 맵리 듀스, 파이썬 멀티 스레딩

MapReduce는이 프로그래밍 모델이며, 또한 처리 알고리즘이 큰 데이터 세트의 관계 모델을 생성한다. 사용자는 먼저 데이터 키 / 값 쌍의 중간 출력의 세트의 데이터 키 / 값 쌍에 기초하여, 설정에 기초하여 처리하는 매핑 함수를 생성하고, 그 중간 키 값과 동일한 값을 갖는 모든 중간 값을 결합하기 위해 사용되는 감소 함수를 생성한다.

프로그래밍을 줄일 수있는 간단한지도를 시뮬레이션

# ### 구현이지도는 프로그래밍을 줄일 수 있습니다. 
# ### 입력으로 일련의 숫자가 있습니다. 각 숫자는 7보다 더 얻을 수 있습니다. 마지막으로, 나머지 추가 
오기 시간 
으로 myList를 = 134,43,49,34,1,34,89,133,13434,379,134,4343,13434,34454,343,134 ]
 DEF의 잉여 (myNum에) . = myNum에 7 %
    인쇄 경우 →
    # ## 위해 SLEEP의 첨가 효과를 관찰 
   time.sleep를 (1. )
    반환 DEF plus_all (myList에) 
   mySum = 0을
    위한 onesurplus 에서 :지도 (잉여으로 myList) 
      mySum = mySum + onesurplus
    반환 mySum
 IF
 __name__ == ' __main__ ' :
    인쇄 (plus_all (mylist)로 바뀐다는)
以上实现了 一个最简单的map reduce 变成模型,只不过map任务仍然是单线程。在map的调用替换成多任务并发即可。以下用4线程并发调起map()。futures.ProcessPoolExecutor()默认调起线程是cpu的线程数。
# ### 구현이지도는 프로그래밍을 줄일 수 있습니다. 
# ### 입력으로 일련의 숫자가 있습니다. 각 숫자는 7보다 더 얻을 수 있습니다. 마지막으로, 나머지 추가 
오기 시간
 에서 동시 오기 선물 
으로 myList = 134,43,49,34,1,34,89,133,13434,379,134,4343,13434,34454,343,134 ]
 DEF의 잉여 (myNum에) = % myNum에 . 7
    # 인쇄 (A) 
   중 # ## 효과, SLEEP 첨가 관찰하기 위하여 
   time.sleep를 (1. )
    반환 DEF plus_all (myList에) 
   mySum = 0 
   futures.ProcessPoolExecutor과 ( 4. AS 풀)
       에 대한 onesurplus
pool.map (잉여으로 myList) 
         mysum = mysum + onesurplus
    복귀 mysum
 경우  __name__ == ' __main__ ' :
    인쇄 (plus_all (myList에))

요약 :

1과 동일한 공정 흐름에 의해 복수의 부분으로 모델, 제 태스크 프로그래밍을 감소 매핑. 쓰기지도 기능, 결과 세트가 해결 된 함수가 반환,

지도 작업을 호출하는 동시 스레드 2. 모든 처리지도 결과를 반환합니다.

추천

출처www.cnblogs.com/vansky/p/12484494.html