Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. import multiprocessing as M
  2. import Queue
  3. import time, sys
  4.  
  5. def go(x):
  6. print 'hi-%s'%repr(x)
  7. i = 0
  8. while True:
  9. q.put('Q'*(1<<20))
  10. #q.put('put-%s-%d' %(x, i))
  11. i += 1
  12. time.sleep(0.5)
  13. print 'slept'
  14. print 'bye'
  15. def f(x):
  16. try:
  17. go(x)
  18. except KeyboardInterrupt:
  19. msg = 'handled-%s' %x
  20. print msg
  21. raise
  22. def main(prog, n='1'):
  23. global q
  24. n = int(n)
  25. q = M.Queue()
  26. p = M.Pool(processes=n)
  27. p.map_async(f, range(n))
  28. try:
  29. while True:
  30. try:
  31. got = q.get(block=True)
  32. #got = q.get(block=True, timeout=1)
  33. print 'got', len(got)
  34. except Queue.Empty:
  35. print 'Empty'
  36. pass
  37. except KeyboardInterrupt:
  38. print 'handled'
  39. time.sleep(1)
  40. #q.close()
  41. #q.join_thread()
  42. p.terminate()
  43. p.join()
  44. #print 'sleeping before re-raising'
  45. #time.sleep(1)
  46. raise
  47. print 'ending'
  48. main(*sys.argv)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement