Что такое процесс и нить? - PullRequest
51 голосов
/ 23 февраля 2010

Да, я прочитал много материалов, связанных с операционной системой. И я все еще читаю. Но, похоже, что все они описывают процесс и поток «абстрактно», что вызывает много поводов для высокого уровня их поведения и логической организации. Мне интересно, что они физически ? По-моему, это всего лишь некоторые "структуры данных" в памяти, которые поддерживаются и используются кодами ядра для облегчения выполнения программы. , Например, операционная система использует некоторую структуру данных процесса (PCB) , чтобы описать аспекты процесса, назначенного для определенной программы, такие как его приоритет, его адресное пространство и так далее. Это все в порядке?

Ответы [ 22 ]

0 голосов
/ 21 января 2015

Попытка ответить на этот вопрос, относящийся к миру Java.

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

Например:

Пример 1. JVM работает в одном процессе, а потоки в JVM совместно используют кучу, принадлежащуюэтот процесс.Вот почему несколько потоков могут обращаться к одному и тому же объекту.Потоки разделяют кучу и имеют свое собственное пространство стека.Таким образом, вызов одного потока метода и его локальных переменных защищен потоком от других потоков.Но куча не является поточно-ориентированной и должна быть синхронизирована для обеспечения безопасности потока.

Пример 2. Программа может быть не в состоянии рисовать картинки, читая нажатия клавиш.Программа должна уделять все внимание вводу с клавиатуры, а отсутствие возможности обрабатывать более одного события одновременно может привести к проблемам.Идеальным решением этой проблемы является плавное выполнение двух или более разделов программы одновременно.Темы позволяют нам сделать это.Здесь Рисование изображения - это процесс, а чтение нажатия клавиши - это подпроцесс (поток).

0 голосов
/ 23 февраля 2010

Поток управляется процессом, процесс управляется операционной системой

...