Показать статистику
0 голосов
от (1.7тыс. баллов)
Подскажите пожалуйста, в чем разница межбу process и thread в Linux?
1.2тыс. просмотров 1 ответов

1 Ответ

0 голосов
от (17.4тыс. баллов)

Процесс - это программа в процессе выполнения. Иными словами, процесс - это программный код, который из состояния "ready" ("готов к выполнению") запланирован к выполнению процессором компьютера.  Так же всей информацией о выбранном процессе располагает PCB или Process Control Block. PCB - это виртуальная таблица в памяти компьютера, содержащая такую информацию как приоритет процесса, задействованные регистры, ограничения по памяти, номер процесса и так далее.  Так же процесс может порождать другие процессы (Child Processes). По сравнению с потоками (threads), процесс требует больше ресурсов для завершения. Кроме этого, процесс изолирован и не делит память с другими процессами. Процесс так же может находиться в одном из следующих состояний: 

  • new (новый) 
  • ready (готов к исполнению)
  • running (выполняется)
  • waiting (ожидает)
  • terminated (завершен)
  • suspended (приостановлен). 

Поток или Thread - это сегмент процесса, т.е. процесс может иметь несколько потоков. При этом в отличие от процесса, поток может находится в трех состояниях:

  • running (выполняется)
  • ready (готов к исполнению)
  • blocked (заблокирован)

С точки зрения потребления ресурсов потоки более легкие, их завершить проще чем закрыть процесс. Но при этом потоки не имеют такой изоляции между собой как процессы.

...