Потоки против процессов вообще - PullRequest
2 голосов
/ 14 мая 2011

1) Почему создание потоков дешевле, чем создание процессов?

2) В чем разница между потоком и подпроцессом? Как это относится к вышеупомянутому вопросу?

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Когда создается процесс, ему выделяется куча и память стека.С другой стороны, потоки получают только стек и разделяют кучу с родительским процессом.Это означает, что даже если вы просто учитываете выделение памяти, создание процесса «дороже», чем потока.

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

2 голосов
/ 14 мая 2011

Ответ на этот вопрос, вероятно, очень зависит от ОС, но общее правило:

  1. Потоки процесса живут в том же пространстве виртуальной памяти, что и их родитель. Таким образом, создание потока обходится дешевле, чем создание процесса, поскольку базовой операционной системе не нужно создавать полное пространство виртуальной памяти.

  2. Подпроцесс - это просто еще один процесс, порожденный родителем.

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