1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| import multiprocessing
from multiprocessing import Pool
from time import sleep
# Function pour process
def procFunction1( param ):
msgQueue = param[0]
sleep_time = int(param[1])/2
msgQueue.put("- Start process sleep "+str(param[1]) )
sleep(sleep_time)
msgQueue.put("/ Process sleep "+str(param[1])+" a moitier" )
sleep(sleep_time)
msgQueue.put("* End process sleep "+str(param[1]) )
return param[1]
if __name__ == '__main__':
print("Debut du process parent")
# Creation de la queue de message
m = multiprocessing.Manager()
messageQueue = m.Queue()
#Creation des param pour la fonction executer dans le process
param = [ (messageQueue,2), (messageQueue,5), (messageQueue,9), (messageQueue,12), (messageQueue,3), (messageQueue,1) ]
print("Lancement des Process ....")
with Pool(processes=4) as pool:
for i in pool.imap_unordered( procFunction1, param ):
while not messageQueue.empty():
print(messageQueue.get())
print( "Retour = " + str(i) )
print("Fin du process parent") |
Partager