import time
import multiprocessing
import psutil

def test():
    for _ in range(3):
        print(f"{multiprocessing.current_process().name} - {time.time()}")
        time.sleep(2)



def get_os_process():
    for proc in psutil.process_iter():
        if proc.name() == 'python.exe':
            print(proc.name())

def test_prc_1():
    """Базовые методы процессов"""
    prc = multiprocessing.Process(target=test, name="prc-1")
    prc.start()
    print("Процесс запущен")
    # # get_os_process()

    prc.join()  # ждет завершения процесса

    while True:
        print(prc.is_alive())
        print(prc.pid)
        time.sleep(5)
        prc.terminate() # убить процесс


def test_prc_2():
    """Метод join - ожидание завершения процесса"""
    prc = []
    for _ in range(3):
        pr = multiprocessing.Process(target=test)
        prc.append(pr)
        pr.start()

    for i in prc:
        i.join()

    print("Все процессы завершены")


class Process(multiprocessing.Process):
    def run(self):
        print("work")
    
def class_test():
    pr = Process()
    pr.start()


if __name__ == '__main__':

    
    # test_prc_2()
    # prc = multiprocessing.Process(target=test, name="prc-1")
    # prc.start()
    # print("Процесс запущен")
    # # get_os_process()

    # prc.join()  # ждет завершения процесса

    # while True:
    #     print(prc.is_alive())
    #     print(prc.pid)
    #     time.sleep(5)
    #     prc.terminate() # убить процесс