Что такое многопоточность?

Прочитано: 146 раз(а)


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

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

Для многопоточности необходимы высокая скорость центрального процессора ( ЦП ) и большой объем памяти . Один процессор выполняет фрагменты или потоки различных программ так быстро, что кажется, что компьютер одновременно обрабатывает несколько запросов.

Как работает многопоточность?

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

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

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

Пример многопоточности

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

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

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

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

Многопоточность против многозадачности против многопроцессорности

Многопоточность отличается от многозадачности и многопроцессорности . Однако многозадачность и многопроцессорность связаны с многопоточностью следующими способами:

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

Многопоточность против параллельной обработки и многоядерных процессоров

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

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

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

многопоточность



Новости партнеров