Advertisement
nigaky

Untitled

Mar 26th, 2014
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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 reset():
  15.     for e in EV: e.clear()
  16.     EV[0].set()
  17.  
  18. def main():
  19.     p = Pool(10)
  20.  
  21.     reset()
  22.     run1 = [a for a in p.imap_unordered(echo, xrange(10))]
  23.  
  24.     reset()
  25.     run2 = [a for a in p.imap_unordered(echo, xrange(10))]
  26.  
  27.     reset()
  28.     run3 = [a for a in p.imap_unordered(echo, xrange(10))]
  29.  
  30.     reset()
  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