Это зависит от того, какие операции вы пытаетесь сделать.
В дополнение к тому, что упоминается Why should I use a thread vs. using a process?, я хотел бы добавить, что потоки разделяют память о процессе, в котором они являются частью. С другой стороны, процессы не обмениваются памятью. Каждый процесс имеет собственное пространство памяти в стеке.
Если вы планируете работать с одними и теми же данными (возможно, по отдельным частям), я рекомендую вам делать это с помощью потоков. Каждый поток работает на куске данных.
Если операции полностью не связаны, используйте процессы. Я знаю, что это расплывчато; но если вы не обмениваетесь данными, а операции не должны быть сериализованы, вы можете использовать процессы.
Обычно одно приложение (процесс) генерирует несколько потоков. Если у вас несколько приложений, каждое приложение является процессом и имеет собственное адресное пространство.
Это зависит от того, что вы подразумеваете под «длинным ходом» ... 10 секунд, 20 минут, 5 дней? – Kiril
@ Lirik несколько минут. – CuiPengFei