Advertisement
nigaky

multiprocessing with Event

Mar 26th, 2014
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.75 KB | None | 0 0
  1. from multiprocessing.pool import Pool
  2. from multiprocessing import Event
  3.  
  4. import time
  5.  
  6. EV = [Event() for e in xrange(11)]
  7.  
  8. def echo(i):
  9.     EV[i].wait()
  10.     time.sleep(0.001)
  11.     EV[i+1].set()
  12.     return i
  13.  
  14. def main():
  15.     p = Pool(10)
  16.  
  17.     for e in EV: e.clear()
  18.     EV[0].set()
  19.     run1 = [a for a in p.imap_unordered(echo, xrange(10))]
  20.  
  21.     for e in EV: e.clear()
  22.     EV[0].set()
  23.     run2 = [a for a in p.imap_unordered(echo, xrange(10))]
  24.  
  25.     for e in EV: e.clear()
  26.     EV[0].set()
  27.     run3 = [a for a in p.imap_unordered(echo, xrange(10))]
  28.  
  29.     for e in EV: e.clear()
  30.     EV[0].set()
  31.     run4 = [a for a in p.imap_unordered(echo, xrange(10))]
  32.  
  33.     print( run1 == run2 == run3 == run4 )
  34.  
  35. if __name__ == '__main__':
  36.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement