Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2015
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.61 KB | None | 0 0
  1. ##################################################################################################
  2. import multiprocessing
  3. import time
  4. import os
  5.  
  6. # PROBLEM: WHEN DEFINED HERE THEN IT IT WORKS
  7. semaphore = multiprocessing.Semaphore(1)
  8.  
  9.  
  10. def job(num, output):
  11.   semaphore.acquire()
  12.   time.sleep(1)
  13.   element = "PROCESS: %d PID: %d PPID: %d" % (num, os.getpid(), os.getppid())
  14.   print "WRITE -> " + element
  15.   output.put(element)
  16.   time.sleep(1)
  17.   semaphore.release()
  18.  
  19. if __name__ == '__main__':
  20.     """
  21.    Reads elements as soon as they are are put inside queue
  22.    """
  23.    
  24.     output    = multiprocessing.Manager().Queue()
  25.     pool      = multiprocessing.Pool(4)
  26.    
  27.     # # PROBLEM: WHEN DEFINED HERE THEN IT DOES NOT WORKS
  28.     # semaphore = multiprocessing.Semaphore(1)
  29.  
  30.     lst       = range(40)
  31.    
  32.     for i in lst:
  33.         pool.apply_async(job, (i, output))
  34.         print "%d Do not wait!" % i
  35.         # res.get()
  36.  
  37.     counter = 0
  38.     while True:
  39.       try:
  40.         print "READ  <- " + output.get_nowait()
  41.         counter += 1
  42.         if (counter == len(lst)):
  43.           print "Break"
  44.           break
  45.       except:
  46.         print "READ  <- NOTHING IN BUFFER"  
  47.         pass
  48.       time.sleep(1)
  49.            
  50.  
  51.     pool.close()
  52.     pool.join()
  53. ##################################################################################################
  54. # PRINT 10
  55.  
  56. global_var = 20
  57.  
  58. def print_global_var():
  59.     print global_var
  60.  
  61. if __name__ == '__main__':
  62.     global_var = 10
  63.     print_global_var()
  64. ##################################################################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement