Advertisement
Guest User

Untitled

a guest
Jan 30th, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.81 KB | None | 0 0
  1. from multiprocessing import Process, Queue
  2. from time import sleep
  3.  
  4.  
  5. def pKernel(KernelQ):
  6.     print("Процесс pKernel запущен!!!")
  7.     while True:
  8.         InMsg = KernelQ.get()
  9.         if InMsg == 'stop':
  10.             break
  11.         print("Процесс pKernel получил: %s" % (InMsg))
  12.  
  13.  
  14. def pPing(KernelQ):
  15.     x = 0
  16.     while True:
  17.         x += 1
  18.         sleep(1)
  19.         print("Размер очереди: %s" % (KernelQ.qsize()))
  20.         KernelQ.put("Послание {} в KernelQ".format(x))
  21.        
  22.         # если в очереди 10 элементов завершает процесс
  23.         if KernelQ.qsize() == 10:
  24.             print("Процесс pPing завершен!!!")
  25.             break
  26.  
  27.  
  28. if __name__=="__main__":
  29.     # Очередь
  30.     QKernel = Queue()
  31.  
  32.     # Процессы
  33.     _Kernel = Process(target=pKernel, args=(QKernel, ))
  34.     _Ping = Process(target=pPing, args=(QKernel, ))
  35.  
  36.     # Запуск процессов
  37.     _Kernel.start()
  38.     _Ping.start()
  39.  
  40.     # Ожидание
  41.     sleep(10)
  42.  
  43.     # Отправка сообщения об остановке
  44.     QKernel.put('stop')
  45.  
  46.     # Ожидание остановки и завершение процесса
  47.     _Kernel.join()
  48.     _Kernel.close()
  49.     print("Процесс pKernel завершен!!!")
  50.  
  51.     # Ожидание
  52.     sleep(5)
  53.  
  54.     # Новый запуск процесса
  55.     _Kernel = Process(target=pKernel, args=(QKernel, ))
  56.     _Kernel.start()
  57.  
  58.     # Ожидание
  59.     sleep(10)
  60.  
  61.     # Отправка сообщения об остановке
  62.     QKernel.put('stop')
  63.  
  64.     # Ожидание остановки и завершение процесса
  65.     _Kernel.join()
  66.     _Kernel.close()
  67.     print("Процесс pKernel завершен!!!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement