Ключова разлика : нишката и процесът са две тясно свързани термини в мулти-резбата. Основната разлика между двата термина е, че нишките са част от процес, т.е. процесът може да съдържа една или повече нишки, но нишката не може да съдържа процес.
В програмирането има две основни единици на изпълнение: процеси и нишки. И двамата изпълняват серия от инструкции. И двете се инициират от програма или операционна система. Тази статия помага да се направи разграничение между двете звена.
Процесът има самостоятелна среда за изпълнение. Той има пълен набор от частни основни ресурси за изпълнение; по-специално, всеки процес има своя собствена памет. Процесите често се считат за подобни на други програми или приложения. Изпълнението на едно-единствено заявление обаче може да представлява съвкупност от процеси на сътрудничество. За да се улесни комуникацията между процесите, повечето операционни системи използват ресурси на Inter Process Communication (IPC), като тръби и гнезда. Ресурсите на IPC могат да се използват и за комуникация между процесите на различни системи. Повечето приложения във виртуална машина работят като един процес. Въпреки това, той може да създава допълнителни процеси, като използва обект за изграждане на процеси.
В компютрите нишката може да изпълни дори най-малката последователност от програмирани инструкции, които могат да бъдат управлявани независимо от операционната система. Приложенията на нишки и процеси се различават от една операционна система до друга. Въпреки това, нишките са направени и съществуват в рамките на един процес; всеки процес има поне един. Няколко нишки също могат да съществуват в процеса и да споделят ресурси, което помага за ефективна комуникация между нишките.
На един процесор се изпълнява многозадачност, когато процесорът превключва между различни нишки; тя е известна като многопоточна. Превключването се случва толкова често, че нишките или задачите се възприемат като работещи едновременно. Нишките наистина могат да бъдат едновременни на многопроцесорна или многоядрена система, като всеки процесор или ядро изпълнява отделните нишки едновременно.
В обобщение, нишките могат да се считат за леки процеси, тъй като те съдържат прости набори от инструкции и могат да се изпълняват в по-голям процес. Компютрите могат да изпълняват няколко потока и процеси едновременно.
Сравнение между процес и нишка:
процес | нишка | |
дефиниция | Изпълняващ се екземпляр на програма се нарича процес. | Нишката е подмножество на процеса. |
процес | Той има собствено копие на сегмента от данни на родителския процес. | Той има директен достъп до сегмента от данни на процеса. |
общуване | Процесите трябва да използват комуникация между процесите, за да комуникират с процесите на брат. | Нишките могат да комуникират директно с други нишки на процеса. |
режийни разноски | Процесите имат значителни разходи. | Нишките нямат почти никакви режийни. |
създаване | Новите процеси изискват дублиране на родителския процес. | Новите нишки лесно се създават. |
контрол | Процесите могат само да упражняват контрол върху детските процеси. | Конците могат да упражняват значителен контрол върху нишките на същия процес. |
Промени | Всяка промяна в родителския процес не засяга детските процеси. | Всяка промяна в основната нишка може да повлияе на поведението на другите нишки в процеса. |
памет | Стартирайте в отделни пространства с памет. | Стартирайте в споделени пространства с памет. |
Дескриптори на файлове | Повечето дескриптори на файлове не са споделени. | Той споделя дескриптори на файлове. |
Файлова система | Няма споделяне на контекста на файловата система. | Той споделя контекста на файловата система. |
сигнал | Той не споделя обработката на сигнали. | Той споделя обработката на сигнали. |
Контролиран от | Процесът се контролира от операционната система. | Конците се контролират от програмист в програма. |
Зависимост | Процесите са независими. | Конците са зависими. |