3. Потоки Процессов

Что такое потоки процессов?

Возможно, вы слышали термины однопоточный и многопоточный. Потоки — это единицы выполнения внутри процесса, и их часто называют «легковесными процессами». В то время как процессы работают со своими собственными изолированными системными ресурсами, потоки в одном и том же процессе могут совместно использовать эти ресурсы, например, память. Такая модель совместного использования ресурсов делает связь между потоками намного быстрее и эффективнее, чем связь между отдельными процессами.

Однопоточный против многопоточного

Каждый процесс имеет как минимум один поток. Процесс, имеющий только один поток, называется однопоточным, а процесс с более чем одним потоком — многопоточным.

Например, когда вы используете современный текстовый редактор, он может работать как один процесс. Однако внутри этого процесса один поток может управлять вводом с клавиатуры, в то время как другой поток работает в фоновом режиме для проверки орфографии или автосохранения. Такое параллельное выполнение делает приложение более отзывчивым. Использование нескольких потоков часто более эффективно, чем запуск нескольких процессов для связанных задач.

Как отобразить потоки с помощью ps

Чтобы проверить запущенные процессы и их потоки, вы можете использовать команду ps. Хотя у ps много опций, распространенный способ отобразить потоки — использовать флаг m.

pete@icebox:~$ ps m
  PID TTY      STAT   TIME COMMAND
 2207 pts/2    -      0:01 bash
    - -        Ss     0:01 -
 5252 pts/2    -      0:00 ps m
    - -        R+     0:00 -

Интерпретация вывода

В приведенном выше выводе строки с PID (идентификатор процесса) представляют основной процесс. Строки непосредственно под ними, в которых вместо PID стоит прочерк (-), представляют потоки, принадлежащие этому процессу. В этом примере и процессы bash, и ps m являются однопоточными, поскольку для каждого указан только один основной поток.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Практика ведет к совершенству! Вот несколько практических лабораторных работ для закрепления понимания процессов Linux и управления ими:

  1. Управление и мониторинг процессов Linux — В этой лаборатории вы изучите основные навыки управления и мониторинга процессов в системе Linux. Вы узнаете, как взаимодействовать с процессами на переднем и заднем планах, просматривать их с помощью ps, отслеживать ресурсы с помощью top, изменять приоритет с помощью renice и завершать их с помощью kill.

Эта лаборатория поможет вам применить концепции управления процессами в реальных сценариях и повысить уверенность в мониторинге системной активности.

Тест

Верно или неверно, все процессы начинаются как однопоточные.