Нитка проти процесу
Процес
У світі комп’ютерного програмування процес - це екземпляр або виконання програми. Кожен процес містить програмний код та наявну діяльність. Може бути декілька потоків, які можуть складати певний процес. Інструкції можуть виконуватися одночасно. Однак це буде залежати від використовуваної операційної системи.
В основному, процеси - це значні програми. Вони споживають значну кількість пам'яті. Тому вони значною мірою залежать від ресурсів, доступних для виконання. Сказавши все це, процес, як відомо, є "важким процесом".
Кожен процес відбувається в іншому місці пам'яті. Тому, якщо є більше процесів, перемикання між кожним процесом коштує дуже дорого, оскільки для переходу до іншого розподілу буде потрібно час від кожного розподілу пам'яті. Кожен процес має власний адресний простір, який може зібрати значну кількість пропозиції.
Процес не залежить від інших процесів. Отже, коли батьківський процес модифікований, це не обов'язково впливатиме на інші процеси. Через таку поведінку процеси потребують міжпроцесорного спілкування, щоб вони могли спілкуватися зі своїми побратимами.
Крім того, процеси, через їх набагато складніший характер, не створюються легко. Це може потребувати певного дублювання процесів, як правило, батьківського процесу для досягнення побудови.
Нитка
Навіть при мінімальних системних ресурсах потоки можуть бути виконані одночасно для досягнення заданого завдання. Причиною є той факт, що потік - це лише послідовність виконання. Це просто в процесі, і тому його також називають "легким процесом".
Він розглядається як найменша частина програми, оскільки це самостійний послідовний шлях виконання в межах програми. Переключення контексту між потоками вимагає мінімальної кількості ресурсів на відміну від процесів. Нитки, по суті, діляться адресними просторами, і вони також легко створюються.
Слід також зазначити, що зміни, внесені в основний потік, можуть впливати на поведінку інших потоків у межах того самого процесу. Мабуть, зв’язок між потоками в одному і тому ж процесі прямий і безперебійний.
Підсумок:
1. Процес може містити більше одного потоку.
2. Процес вважається "важким", тоді як нитка вважається "легкою".
3. Процеси сильно залежать від наявних системних ресурсів, тоді як потокам потрібна мінімальна кількість ресурсу.
4. Зміна основної нитки може вплинути на наступні потоки, тоді як зміни в батьківському процесі не обов'язково впливатимуть на дочірні процеси.
5. Нитки в процесі спілкуються безпосередньо, тоді як процеси не спілкуються так легко.
6. Нитки легко створити, поки процеси не такі прості.