[code.view]

[top] / python / PyMOTW / multiprocessing / multiprocessing_pool.py

     #!/usr/bin/env python
     # encoding: utf-8
     #
     # Copyright (c) 2009 Doug Hellmann All rights reserved.
     #
     """
     """
     #end_pymotw_header
     
     import multiprocessing
     
     def do_calculation(data):
         return data * 2
     
     def start_process():
         print 'Starting', multiprocessing.current_process().name
     
     if __name__ == '__main__':
         inputs = list(range(10))
         print 'Input   :', inputs
         
         builtin_outputs = map(do_calculation, inputs)
         print 'Built-in:', builtin_outputs
         
         pool_size = multiprocessing.cpu_count() * 2
         pool = multiprocessing.Pool(processes=pool_size,
                                     initializer=start_process,
                                     )
         pool_outputs = pool.map(do_calculation, inputs)
         pool.close() # no more tasks
         pool.join()  # wrap up current tasks
     
         print 'Pool    :', pool_outputs
     

[top] / python / PyMOTW / multiprocessing / multiprocessing_pool.py

contact | logmethods.com