Как запустить два процесса на python?

Для запуска двух процессов в Python вы можете воспользоваться несколькими подходами, включая использование модуля multiprocessing, модуля subprocess или модуля threading. Ниже я приведу примеры каждого из этих подходов.

1. Использование модуля multiprocessing:
Модуль multiprocessing позволяет создавать и управлять процессами в Python.

import multiprocessing

def process1():
    # Ваш код для первого процесса

def process2():
    # Ваш код для второго процесса

if __name__ == '__main__':
    p1 = multiprocessing.Process(target=process1)
    p2 = multiprocessing.Process(target=process2)
  
    p1.start()
    p2.start()

    p1.join()
    p2.join()

В этом примере создаются два объекта Process, каждый из которых привязан к соответствующей функции process1 и process2. Затем вызывается метод start() для запуска каждого процесса, а метод join() используется для ожидания завершения каждого процесса.

2. Использование модуля subprocess:
Модуль subprocess позволяет запускать внешние процессы из Python.

import subprocess

process_1_cmd = ['python', 'script1.py']
process_2_cmd = ['python', 'script2.py']

process1 = subprocess.Popen(process_1_cmd)
process2 = subprocess.Popen(process_2_cmd)

В этом примере переменные process_1_cmd и process_2_cmd содержат команды запуска скриптов script1.py и script2.py соответственно. Затем каждый из этих скриптов запускается с помощью метода Popen().

3. Использование модуля threading:
Модуль threading позволяет создавать и управлять потоками выполнения в Python.

import threading

def process1():
    # Ваш код для первого процесса

def process2():
    # Ваш код для второго процесса

thread1 = threading.Thread(target=process1)
thread2 = threading.Thread(target=process2)

thread1.start()
thread2.start()

thread1.join()
thread2.join()

В этом примере создаются два объекта Thread, каждый из которых привязан к соответствующей функции process1 и process2. Затем вызывается метод start() для запуска каждого потока, а метод join() используется для ожидания завершения каждого потока.

Все эти методы имеют свои особенности, и важно выбрать подход, наиболее подходящий для вашей конкретной задачи. Комментарии в представленных примерах обозначают места, где вам нужно добавить свой собственный код для каждого процесса или потока.