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