Оглавление:
Определение - Что означает многопоточность?
Многопоточность - это тип модели выполнения, которая позволяет нескольким потокам существовать в контексте процесса, так что они выполняются независимо, но совместно используют свои ресурсы процесса. Поток поддерживает список информации, относящейся к его выполнению, включая расписание приоритетов, обработчики исключений, набор регистров ЦП и состояние стека в адресном пространстве своего процесса хостинга.
Многопоточность также известна как многопоточность.
Техопедия объясняет многопоточность
Потоки могут быть полезны в однопроцессорной системе, позволяя основному потоку выполнения реагировать на ввод пользователя, в то время как дополнительный рабочий поток может выполнять долгосрочные задачи, которые не требуют вмешательства пользователя в фоновом режиме. Потоки в многопроцессорной системе обеспечивают истинное параллельное выполнение потоков на нескольких процессорах и, следовательно, быстрее. Однако, это требует более тщательного программирования, чтобы избежать неинтуитивного поведения, такого как условия гонки, тупики и т. Д.
Операционные системы используют многопоточность двумя способами:
- Упреждающая многопоточность, при которой переключение контекста контролируется операционной системой. Переключение контекста может быть выполнено в неподходящее время. Следовательно, поток с высоким приоритетом может быть косвенно вытеснен потоком с низким приоритетом.
- Совместная многопоточность, в которой переключение контекста контролируется потоком. Это может привести к проблемам, таким как взаимоблокировки, если поток заблокирован в ожидании освобождения ресурса.
32- и 64-разрядные версии Windows используют преимущественную многопоточность, в которой доступное время процессора распределяется так, что все потоки получают одинаковый интервал времени и обслуживаются в режиме на основе очереди. Во время переключения потока контекст предварительно освобожденного потока сохраняется и перезагружается в следующем потоке в очереди. Временной интервал настолько короткий, что кажется, что запущенные потоки выполняются параллельно.
Это определение было написано в контексте компьютерной архитектуры