Кључна разлика : Тхреад и Процесс су два уско повезана термина у мулти-тхреадинг-у. Главна разлика између ова два термина је да су нити део процеса, тј. Процес може да садржи једну или више нити, али нити не може да садржи процес.
У програмирању постоје двије основне јединице извршења: процеси и нити. Оба извршавају низ инструкција. Оба се покрећу програмом или оперативним системом. Овај чланак помаже да се разликују двије јединице.
![](http://spot-the-difference.info/img/popular-comparisons/398/difference-between-process.jpg)
Процес има самостално извршно окружење. Има комплетан скуп приватних основних ресурса у току; посебно, сваки процес има свој меморијски простор. Процеси се често сматрају сличним другим програмима или апликацијама. Међутим, вођење једне апликације може у ствари бити скуп процеса сарадње. Да би се олакшала комуникација између процеса, већина оперативних система користи ресурсе ИнтерЦ комуникације (ИПЦ), као што су цеви и утичнице. ИПЦ ресурси могу се користити и за комуникацију између процеса на различитим системима. Већина апликација у виртуелној машини ради као један процес. Међутим, може да креира додатне процесе користећи објекат градитеља процеса.
![](http://spot-the-difference.info/img/popular-comparisons/398/difference-between-process-2.jpg)
У компјутерима, нити могу извршити чак и најмањи редослед програмираних инструкција које оперативни систем може самостално управљати. Апликације нити и процеси се разликују од једног до другог оперативног система. Међутим, нити су направљене и постоје у процесу; сваки процес има барем један. Више нити може постојати у процесу и дијелити ресурсе, што помаже у ефикасној комуникацији између нити.
На једном процесору, мултитаскинг се одвија док се процесор пребацује између различитих нити; познат је као мултитхреадинг. Пребацивање се дешава тако често да се нити или задаци перципирају да се покрећу истовремено. Нити заиста могу бити истовремене на вишепроцесорском или вишејезгреном систему, при чему сваки процесор или језгро извршава одвојене нити истовремено.
Укратко, нити се могу сматрати лаганим процесима, јер садрже једноставне скупове инструкција и могу се изводити унутар већег процеса. Рачунари могу истовремено покретати више нити и процеса.
Поређење процеса и теме:
Процес | Тхреад | |
Дефиниција | Извршна инстанца програма се назива процес. | Нит је подскуп процеса. |
Процес | Она има своју копију сегмента података родитељског процеса. | Има директан приступ сегменту података свог процеса. |
Комуникација | Процеси морају да користе интер-процесну комуникацију за комуникацију са сиблинг процесима. | Нити могу директно комуницирати са другим нитима свог процеса. |
Оверхеадс | Процеси имају знатне трошкове. | Нити готово да и немају главе. |
Цреатион | Нови процеси захтевају дуплирање матичног процеса. | Нове теме се лако креирају. |
Контрола | Процеси могу само да контролишу дечије процесе. | Нити могу имати значајну контролу над нитима истог процеса. |
Промене | Свака промена у родитељском процесу не утиче на дечије процесе. | Свака промена у главној нити може утицати на понашање других нити процеса. |
Меморија | Трчите у одвојеним просторима меморије. | Трчите у просторима са заједничком меморијом. |
Дескриптори датотека | Већина дескриптора датотека се не дели. | Она дијели дескрипторе датотека. |
Систем датотека | Не постоји дељење контекста датотечног система. | Размјењује контекст датотечног система. |
Сигнал | Не дијели управљање сигналом. | Дијели сигнале. |
Под контролом | Процесом управља оперативни систем. | Нити контролише програмер у програму. |
Зависност | Процеси су независни. | Нити зависе. |