Короткий ответ
Процесс — независимая единица выполнения со своим адресным пространством памяти, поток — единица выполнения внутри процесса, разделяющая с другими потоками того же процесса память и файловые дескрипторы; список процессов смотрят командой ps aux или ps -ef.
Как это работает подробнее
Ядро планирует как процессы, так и потоки, но у процесса отдельное виртуальное адресное пространство, а потоки одного процесса используют общее адресное пространство, из-за чего переключение между потоками дешевле, а обмен данными между процессами требует явного межпроцессного взаимодействия.
Пример кода
commands.sh
ps aux --sort=-%cpu | head -10Что использовать на практике
- Практика. ps aux даёт снимок всех процессов с CPU/MEM, а ps -eLf или top с режимом Threads (клавиша H) показывает потоки внутри процессов — это полезно при диагностике приложений, которые упираются в производительность одного потока.
Подводные камни
- Риск. Частая ошибка — путать «высокую загрузку CPU процессом» с «утечкой памяти процессом» просто по одной колонке в ps, не проверяя, растёт ли RSS во времени и не является ли нагрузка нормальной многопоточной работой.