multiprocessing.Process() создает новый процесс операционной системы для параллельного выполнения кода.  Он принимает целевую функцию (target) и аргументы (args) для этой функции. При вызове .start() на созданном объекте Process, происходит форк текущего процесса, создается копия адресного пространства, и новый процесс начинает выполнение указанной целевой функции. Коммуникация между процессами обычно осуществляется через очереди (Queue) или каналы (Pipe). Важно помнить, что изменения данных в одном процессе не видны другим процессам, если не используются механизмы межпроцессного взаимодействия.
multiprocessing.Process() из модуля multiprocessing в Python позволяет создавать новые процессы (потоки управления) для параллельного выполнения задач. Вот как он работает:
  multiprocessing.Process(target=function, args=(arg1, arg2, ...)), создается объект класса Process. Этот объект представляет будущий процесс, который еще не запущен.
        target:  Это функция (или вызываемый объект), которую будет выполнять новый процесс.args:  Это кортеж аргументов, которые будут переданы функции target.process.start() у созданного объекта Process, происходит фактическое создание нового процесса.  В большинстве операционных систем (например, Linux, macOS) используется системный вызов fork().
        fork() создает точную копию родительского процесса (то есть, процесса, в котором был вызван process.start()). Эта копия включает в себя все переменные, данные, открытые файлы и состояние программы на момент вызова fork().multiprocessing использует другой механизм создания процессов, который не является форком.  Вместо этого, запускается новый интерпретатор Python и импортируется модуль, содержащий функцию target.  Данные между процессами передаются с помощью сериализации и десериализации (pickle).target.multiprocessing предоставляет различные механизмы для синхронизации и обмена данными между процессами:
        Queue:  Позволяет безопасно передавать данные между процессами.Pipe:  Предоставляет двунаправленную связь между двумя процессами.Lock:  Позволяет предотвратить одновременный доступ нескольких процессов к общему ресурсу.Value и Array:  Позволяют создавать общие переменные и массивы, к которым могут обращаться несколько процессов.target завершает свое выполнение, или когда процесс был завершен принудительно (например, с помощью process.terminate()).  Вы можете дождаться завершения процесса, вызвав метод process.join().Важные моменты:
multiprocessing, должен быть защищен блоком if __name__ == '__main__':.  Это связано с тем, что при создании новых процессов в Windows, заново выполняется весь главный модуль.multiprocessing может значительно улучшить производительность программ, выполняющих вычислительно-интенсивные задачи, особенно на многоядерных процессорах.