Что такое многопоточность?
К
- Пол Кирван
Многопоточность — это способность программы или операционной системы поддерживать более одного пользователя одновременно, не требуя наличия нескольких копий программы, работающей на компьютере. Многопоточность также может обрабатывать несколько запросов от одного пользователя.
Каждый запрос пользователя на программу или системную службу отслеживается как поток с отдельным идентификатором. Поскольку программы работают от имени начального запроса потока и прерываются другими запросами, рабочий статус начального запроса отслеживается до тех пор, пока работа не будет завершена. В этом контексте пользователем также может быть другая программа.
Для многопоточности требуется высокая скорость центрального процессора (ЦП) и большой объем памяти.
Чрезвычайно высокая скорость обработки современных микропроцессоров делает возможной многопоточность. Несмотря на то, что процессор выполняет только одну инструкцию за раз, потоки из нескольких программ выполняются так быстро, что кажется, что несколько программ выполняются одновременно.
Каждый цикл ЦП выполняет один поток, который связан со всеми другими потоками в своем потоке. Этот процесс синхронизации происходит так быстро, что кажется, что все потоки выполняются одновременно. Это можно описать как многопоточную программу, так как она может выполнять много потоков во время обработки.
Каждый поток содержит информацию о том, как он относится к программе в целом. В потоке асинхронной обработки одни потоки выполняются, а другие ждут своей очереди. Многопоточность требует, чтобы программисты обращали особое внимание на предотвращение условий гонки и взаимоблокировок.
Пример многопоточностиМногопоточность используется во многих различных контекстах. Один пример возникает, когда данные вводятся в электронную таблицу и используются для приложения реального времени.
При работе с электронной таблицей пользователь вводит данные в ячейку, и может произойти следующее:
- ширина столбца может быть изменена;
- повторяющихся клеточных элемента могут быть реплицированы; и Электронные таблицы
- могут быть сохранены несколько раз по мере дальнейшей разработки файла.
Каждое действие возникает из-за того, что для каждого действия создается и обрабатывается несколько потоков, что не замедляет работу приложения для работы с электронными таблицами в целом.
Многопоточность, многозадачность и многопроцессорностьМногопоточность отличается от многозадачности и многопроцессорности. Однако многозадачность и многопроцессорность связаны с многопоточностью следующим образом:
- Многозадачность — это способность компьютера одновременно выполнять две или более программы. Многопоточность делает возможной многозадачность, когда программа разбивается на более мелкие исполняемые потоки. Каждый поток имеет программные элементы, необходимые для выполнения основной программы, и компьютер выполняет каждый поток по одному.
- Многопроцессорность использует более одного ЦП для ускорения общей обработки и поддерживает многозадачность.
Параллельная обработка — это когда два или более ЦП используются для обработки отдельных частей задачи. Несколько задач могут выполняться одновременно в системе параллельной обработки. Это отличается от использования одного процессора, когда одновременно выполняется только один поток, а задачи, составляющие поток, планируются последовательно.
Многоядерные процессоры на материнской плате ЦП имеют более одного независимого процессорного блока или ядра. Они отличаются от одноядерных процессоров, которые имеют только один процессор. Многоядерные процессоры обеспечивают повышенную скорость и время отклика по сравнению с одноядерными процессорами.
могут выполнять параллельно столько потоков, сколько имеется ядер ЦП. Это означает, что части задачи выполняются быстрее. В одноядерной системе потоки многопоточных приложений не выполняются параллельно. Вместо этого они используют одно ядро процессора.
Многоядерные процессоры имеют несколько процессорных блоков, которые подключаются к собственному внутреннему кэшу и к общим ресурсам, таким как системная шина и память.
Узнайте о языке программирования Clojure — диалекте Lisp — и использовании многопоточности в Java. Он сочетает в себе доступность и простоту с инфраструктурой многопоточного программирования .
Последнее обновление: май 2022 г.
Продолжить чтение О многопоточности- Повышение производительности приложений с многопоточными приложениями
- Чем CPU, GPU и DPU отличаются друг от друга?
- Усовершенствования функций ЦП помогают выбрать форму
- Как выбрать лучший процессор для виртуализации
- Учебное пособие по многопоточности в Java с программой и примерами
Отчет ESG
ESG-отчетность — это тип корпоративного раскрытия информации, в котором подробно описываются экологические, социальные и управленческие (ESG) обещания, усилия и прогресс организации.
Сеть
- ACK (подтверждение)
В некоторых протоколах цифровой связи ACK — сокращение от «подтверждение» — относится к сигналу, который устройство отправляет, чтобы указать.
.. - поставщик сетевых услуг (NSP)
Поставщик сетевых услуг (NSP) — это компания, которая владеет, управляет и продает доступ к магистральной инфраструктуре Интернета и …
- неэкранированная витая пара (UTP)
Неэкранированная витая пара (UTP) — это повсеместно распространенный тип медных кабелей, используемых в телефонной проводке и локальных сетях (LAN).
Безопасность
- Требования PCI DSS 12
Требования PCI DSS 12 представляют собой набор мер безопасности, которые предприятия должны внедрить для защиты данных кредитных карт и соблюдения …
- данные держателя карты (CD)
Данные держателя карты (CD) — это любая личная информация (PII), связанная с лицом, у которого есть кредитная или дебетовая карта.
- CSR (запрос на подпись сертификата) Запрос на подпись сертификата (CSR) — это специально отформатированное зашифрованное сообщение, отправленное с цифрового уровня защищенных сокетов (SSL) .
..
ИТ-директор
- системное мышление
Системное мышление — это целостный подход к анализу, который фокусируется на том, как взаимодействуют составные части системы и как…
- краудсорсинг
Краудсорсинг — это практика обращения к группе людей для получения необходимых знаний, товаров или услуг.
- синтетические данные
Синтетические данные — это информация, созданная искусственно, а не в результате событий реального мира.
HRSoftware
- вовлечения сотрудников
Вовлеченность сотрудников — это эмоциональная и профессиональная связь, которую сотрудник испытывает к своей организации, коллегам и работе.
- кадровый резерв
Кадровый резерв — это база данных кандидатов на работу, которые могут удовлетворить немедленные и долгосрочные потребности организации.
- разнообразие, равенство и инклюзивность (DEI)
Разнообразие, равенство и инклюзивность — термин, используемый для описания политики и программ, которые способствуют представительству и …
Служба поддержки клиентов
- требующий оценки
Оценка потребностей — это систематический процесс, в ходе которого изучается, какие критерии должны быть соблюдены для достижения желаемого результата.
- точка взаимодействия с клиентом Точка соприкосновения с покупателем — это любой прямой или косвенный контакт покупателя с брендом.
- устав обслуживания клиентов
Устав обслуживания клиентов — это документ, в котором описывается, как организация обещает работать со своими клиентами, а также …
Что такое многопоточность? — Определение из Techopedia
Что означает многопоточность?
Многопоточность — это функция ЦП (центрального процессора), которая позволяет двум или более потокам инструкций выполняться независимо при совместном использовании ресурсов одного и того же процесса . Поток — это автономная последовательность инструкций, которая может выполняться параллельно с другими потоками, являющимися частью того же корневого процесса.
Advertisements
Многопоточность позволяет выполнять несколько одновременных задач в рамках одного процесса. Когда специалисты по данным обучают алгоритмы машинного обучения, многопоточный подход к программированию может повысить скорость по сравнению с традиционными программами с параллельной многопроцессорной обработкой.
Несмотря на то, что операционная система (ОС) быстрее переключается между потоками для активной задачи ЦП, чем между различными процессами, многопоточность требует тщательного программирования, чтобы избежать конфликтов, вызванных условиями гонки и взаимоблокировками.
Чтобы предотвратить состояние гонки и взаимоблокировки, программисты используют блокировки, которые не позволяют нескольким потокам одновременно изменять значение одной и той же переменной.
Techopedia объясняет многопоточность
В 32- и 64-разрядных версиях Windows используется вытесняющая многопоточность, при которой доступное процессорное время распределяется. Все потоки получают равный квант времени и обслуживаются в модели на основе очереди. Во время переключения потоков контекст вытесненного потока сохраняется и перезагружается в следующем потоке в очереди. Это занимает так мало времени, что кажется, что запущенные потоки выполняются параллельно.
Как работает многопоточность?
В программировании поток поддерживает список информации, относящейся к его выполнению, включая расписание приоритетов, обработчики исключений, набор регистров ЦП и состояние стека в адресном пространстве своего хост-процесса. Многопоточность может быть полезна в однопроцессорной системе, поскольку она позволяет основному потоку выполнения реагировать на действия пользователя, в то время как поддерживающие потоки выполняют длительные задачи в фоновом режиме, не требующие вмешательства пользователя.
Размышляя о том, как реализовать многопоточность, важно разделить две концепции параллельной и параллельной обработки.
Параллельная многопроцессорность означает, что система фактически обрабатывает более одного потока в данный момент времени. Параллельная обработка означает, что одновременно будет обрабатываться только один поток, но система будет повышать эффективность за счет быстрого переключения между двумя или более потоками.
Еще одна важная вещь, которую следует отметить, это то, что для практических целей компьютерные системы, созданные для пользователей-людей, могут иметь параллельные или параллельные системы с одним и тем же конечным результатом — процесс выглядит параллельным для пользователя, потому что компьютер работает так быстро с точки зрения микросекунды.
Эволюция многоядерных систем означает, что существует больше параллелизма, что снижает потребность в эффективной параллельной обработке. Разработка более быстрых и мощных микрочипов и процессоров на этом конце расширения закона Мура важна для этого типа проектирования оборудования и разработки в целом.
Кроме того, большая часть параллельной или параллельной обработки доступна в зависимости от особенностей операционной системы. Таким образом, для пользователя-человека любой параллельный или параллельный процесс или смешанные процессы воспринимаются как параллелизм в реальном времени.
Типы многопоточности
Различные типы многопоточности применяются к различным версиям операционных систем и связанным с ними элементам управления, разработанным в вычислительной технике: например, в упреждающей многопоточности переключение контекста контролируется операционной системой. Затем существует кооперативная многопоточность, в которой переключение контекста контролируется потоком. Это может привести к таким проблемам, как взаимоблокировки, если поток заблокирован в ожидании освобождения ресурса.
Многие другие типы моделей многопоточности также применимы, например, крупнозернистые, чередующиеся и одновременные многопоточные модели определяют, как потоки координируются и обрабатываются. Другие варианты многопоточности включают модели «многие ко многим», «многие к одному» и «один к одному». Некоторые модели будут использовать такие понятия, как равные временные интервалы, чтобы попытаться распределить выполнение между потоками. Тип многопоточности зависит от самой системы, ее философии и сборки, а также от того, как инженеры запланировали в ней многопоточность.
Ваш комментарий будет первым