Потоки и процессы
Потоки и процессы — это связанные понятия в вычислительной технике. Оба представляют из себя последовательность инструкций, которые должны выполняться в определенном порядке. Инструкции в отдельных потоках или процессах, однако, могут выполняться параллельно.
Процессы существуют в операционной системе и соответствуют тому, что пользователи видят как программы или приложения. Поток, с другой стороны, существует внутри процесса. По этой причине потоки иногда называются "облегченные процессы". Каждый процесс состоит из одного или более потоков.
Существование нескольких процессов позволяет компьютеру "одновременно" выполнять несколько задач. Существование нескольких потоков позволяет процессу разделять работу для параллельного выполнения. На многопроцессорном компьютере процессы или потоки могут работать на разных процессорах. Это позволяет выполнять реально параллельную работу.
Абсолютно параллельная обработка не всегда возможна. Потоки иногда должны синхронизироваться. Один поток может ожидать результата другого потока, или одному потоку может понадобиться монопольный доступ к ресурсу, который используется другим потоком. Проблемы синхронизации являются распространенной причиной ошибок в многопоточных приложениях. Иногда поток может закончиться, ожидая ресурс, который никогда не будет доступен. Это кончается состоянием, которое называется взаимоблокировка.
Отладчик Visual Studio предоставляет мощные, но простые в использовании средства отладки потоков и процессов.
Средства отладки потоков и процессов в Visual Studio
Основные средства для работы с процессами в Visual Studio — это диалоговое окно Присоединение к процессу, окно Процессы и панель инструментов Место отладки. Основные средства для отладки потоков — это окно Потоки, маркеры потоков в окнах исходного кода и панель инструментов Место отладки.
Основные средства для отладки многопоточных приложений — это окна Параллельные стеки и Параллельные задачи.
В следующей таблице показаны доступные данные и действия, которые можно выполнять в каждом из этих мест:
Пользовательский интерфейс |
Доступные сведения |
Действия, которые можно выполнять |
---|---|---|
Диалоговое окно Присоединение к процессу |
Доступные процессы для присоединения:
|
Выберите процесс для присоединения Выберите удаленный компьютер Измените тип транспортного протокола для подключения к удаленным компьютерам |
Окно Процессы |
Присоединенные процессы:
|
Средства:
Контекстное меню:
|
Окно Потоки |
Потоки текущего процесса:
|
Средства:
Контекстное меню:
Другие действия:
|
Окна исходного кода. |
Индикаторы потока в левом поле указывают один или несколько потоков (по умолчанию отключено, включается с помощью контекстного меню в окне Потоки) |
Контекстное меню:
|
Панель инструментов Место отладки |
|
|
Окно Параллельные стеки |
|
|
Окно Параллельные задачи |
|
|
См. также
Задачи
Практическое руководство. Использование окна процессов