Архитектура задач и потоков

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

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

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

В этом разделе