Threading е програмна абстракция за паралелно изпълнение в съвременните операционни системи. При многонишковото изпълнение на програмата се случва следното: адресното пространство на RAM и отворените файлове се споделят между нишките, за да се минимизират режийните разходи и да се използва по-ефективно времето на процесора. Всичко това прави многонишковото изпълнение ефективен и полезен механизъм. Можете да прегледате нишките с помощта на инструментите от командния ред ps
и top
. След това нека видим как да направим това в операционната система Linux.
Linux предоставя два начина за отстраняване на грешки в многонишкови процеси за извършване на определено действие. Единият е, когато даден процес създава свои собствени копия, използвайки механизма fork, и след това тези процеси комуникират чрез сокети или IPC. Т. Потребителят получава процеси, които заемат ресурси и определено количество памет. Следващият начин е да се разпределят нишки в рамките на един процес. По този начин всички нишки на един процес ще имат един идентификатор на група нишки, както и уникален идентификатор. Това означава, че те ще имат достъп до всички ресурси на родителския процес и ще заемат по-малко памет.
В тази програма нишките на процеса се активират с една команда - T.
По следния начин можете да видите всички процесни нишки с PID за Chromium:
$ ps -T -p
В колоната SPID е показан идентификаторът на нишката, а в CMD - името на нишката.
С помощта на помощната програма top е лесно да се преглеждат нишки в реално време. За да направите това, трябва да стартирате top с опцията -H
. Възможно е да разрешите или забраните показването на нишки по време на изпълнение с помощта на клавиша H:
$ top -H
Ако трябва да видите само нишките на желания процес, използвайте:
$ top -H -p pid
Както виждате, използването на top е доста просто.
Най-удобната помощна програма за преглед на нишки обаче е HTOP. Тя е основната интерактивна програма за преглед на процеси в ncurces. С нейна помощ можете да наблюдавате нишки в реално време под формата на дърво.
За да направите това, трябва да активирате прегледа на нишки в htop: първо отворете програмата, влезте в менюто, като натиснете F2, след което изберете Display Options (Опции за показване), в раздела Setup (Настройка). Сега поставете отметка на Three view (Изглед на три нишки) и Show custom thread names (Показване на потребителски имена на нишки). Това е всичко, можете да натиснете F10, за да запазите настройките:
Това е всичко. По този начин можете да разглеждате нишките в дървовиден изглед поотделно за всеки процес. Тук отново можете да видите нишките за браузъра Chromium: