proc1.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import time
  2. import multiprocessing
  3. import psutil
  4. def test():
  5. for _ in range(3):
  6. print(f"{multiprocessing.current_process().name} - {time.time()}")
  7. time.sleep(2)
  8. def get_os_process():
  9. for proc in psutil.process_iter():
  10. if proc.name() == 'python.exe':
  11. print(proc.name())
  12. def test_prc_1():
  13. """Базовые методы процессов"""
  14. prc = multiprocessing.Process(target=test, name="prc-1")
  15. prc.start()
  16. print("Процесс запущен")
  17. # # get_os_process()
  18. prc.join() # ждет завершения процесса
  19. while True:
  20. print(prc.is_alive())
  21. print(prc.pid)
  22. time.sleep(5)
  23. prc.terminate() # убить процесс
  24. def test_prc_2():
  25. """Метод join - ожидание завершения процесса"""
  26. prc = []
  27. for _ in range(3):
  28. pr = multiprocessing.Process(target=test)
  29. prc.append(pr)
  30. pr.start()
  31. for i in prc:
  32. i.join()
  33. print("Все процессы завершены")
  34. class Process(multiprocessing.Process):
  35. def run(self):
  36. print("work")
  37. def class_test():
  38. pr = Process()
  39. pr.start()
  40. if __name__ == '__main__':
  41. # test_prc_2()
  42. # prc = multiprocessing.Process(target=test, name="prc-1")
  43. # prc.start()
  44. # print("Процесс запущен")
  45. # # get_os_process()
  46. # prc.join() # ждет завершения процесса
  47. # while True:
  48. # print(prc.is_alive())
  49. # print(prc.pid)
  50. # time.sleep(5)
  51. # prc.terminate() # убить процесс