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