Служит для отделения потока выполнения метода от потока, в котором он был вызван. Использует шаблоны асинхронный вызов методов и планировщик. Служит для выполнения действия над объектом только тогда, когда тот находится в корректном состоянии. Комбинирует несколько наблюдателей для обеспечения синхронизации свойств в различных объектах. Позволяет компонентам и приложениям обмениваться информацией (сообщениями). Предназначен для уменьшения накладных расходов, связанных с получением блокировки. Адресные проблемы с Асинхронным паттерном, которые возникают в программах с несколькими потоками. Используется для блокировки выполнения действия над объектом только тогда, когда тот находится в корректном состоянии. Один поток блокирует ресурс для предотвращения доступа или изменения его другими потоками. Объект, предназначенный для безопасного использования более чем одним потоком. Предназначен для синхронной передачи запросов сервису от одного или нескольких источников. Позволяет нескольким потокам одновременно считывать информацию из общего хранилища, но позволяя только одному потоку в текущий момент времени её изменять. Обеспечивает механизм реализации политики планирования, но при этом не зависящих ни от одной конкретной политики. Предоставляет пул потоков для обработки заданий, представленных обычно в виде очереди. Служит для предоставления различных глобальных переменных для разных потоков. Препятствует конкурентному вызову метода, тем самым запрещая параллельное выполнение этого метода. Обеспечивает механизм безопасной остановки потоков исполнения, используя общий флаг для сигнализирования прекращения работы потоков. 