В чем разница между процессом и потоком? - PullRequest
1429 голосов
/ 14 октября 2008

В чем техническая разница между процессом и потоком?

У меня такое ощущение, что слово «процесс» используется слишком часто, и есть также аппаратные и программные потоки. Как насчет легких процессов в таких языках, как Erlang ? Есть ли определенная причина использовать один термин над другим?

Ответы [ 33 ]

1 голос
/ 06 июня 2016

Рассматривайте процесс как единицу собственности или какие ресурсы необходимы для выполнения задачи. Процесс может иметь ресурсы, такие как пространство памяти, определенный ввод / вывод, определенные файлы, приоритет и т. Д.

Поток - это отправляемая единица выполнения или, проще говоря, прохождение последовательности инструкций

1 голос
/ 13 мая 2014

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

0 голосов
/ 01 октября 2018

Из Erlang Programming (2009): Эрлангский параллелизм быстрый и масштабируемый. Его процессы легки в том, что виртуальная машина Erlang не создает поток ОС для каждого созданного процесса. Они создаются, планируются и обрабатываются в виртуальной машине независимо от базовой операционной системы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...