Если поток - это просто еще один процесс, как он уменьшает нагрузку на процессор и обрабатывает перегрузки?

376
Vimugdh Lall

Что это значит, когда говорят, что нить - это легкий процесс ? Если это просто еще один процесс, как он снижает нагрузку на процессор?

-1
Уменьшить нагрузку на процессор по сравнению с чем? И почему целью является сокращение нагрузки на процессор? Разве процессоры не предназначены для * использования *? Andrew Henle 7 лет назад 0
Я имел в виду уменьшение рабочей нагрузки, чтобы избежать побоев. Снижение рабочей нагрузки позволило бы ему обрабатывать больше процессов, чтобы процессор лучше «использовался». Vimugdh Lall 7 лет назад 0

1 ответ на вопрос

2
LMiller7

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

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

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

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

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

Я думаю, что я неправильно понял темы. В любом случае, спасибо, что помогли мне лучше понять это и устранили недостатки в моей ассимиляции. :) Vimugdh Lall 7 лет назад 0

Похожие вопросы