Нитки та розгортання - це фактично дві різні концепції, обидва з яких існують в системах Unix / Linux (і обидва вони можуть бути використані в C / C ++).
Ідея fork () - це (в основному) створення окремого процесу, який має той самий код виконання, що і батьківський процес, і який починається виконання в лінії fork. Мета використання forks з функціями exec полягає в тому, щоб функції exec закривали процес, який викликав їх, коли вони закінчуються. Отже, ви зазвичай розщеплюєте, отримуючи PID кожного процесу (дитина завжди 0), і змушуєте батька чекати, поки дитина закінчить виконувати функцію exec.
Нитки використовуються для паралелізму (нагадайте, що батько чекає на дитину, як правило, у роздвоєній програмі). Потік, такий як pthread в C / C ++ (пошук у Google), буде працювати паралельно основного процесу та може ділитися глобальними змінними та глобальними функціями з оригінальною програмою. Оскільки потоки Java поводяться аналогічно, я б уявив, що вони діють більше, як ці нитки, ніж як процес розщеплення.
В основному існує різниця між розгортанням та нарізкою різьби. Вони роблять виразно різні речі (хоча здаються схожими). Ці поняття можуть бути важкими для розуміння, але ви можете дізнатися їх за допомогою (широкого) дослідження, якщо у вас є чесне бажання їх зрозуміти.
РЕДАКТИКА №1
Ознайомтеся з цими прикладами того, як вилки та нитки можна викликати та використовувати. Зверніть увагу на поведінку функцій exec та їх вплив на основну програму.
http://www.jdembrun.com:2352/computerScience/forkVSthread.zip