- •Начало
- •Использование многопоточности
- •Проблемы многопоточности
- •Реентрабельность
- •Локальное хранилище потока
- •Поддержка многопоточности в C ++
- •Библиотеки многопоточности
- •Потоки
- •Мьютексы
- •Блокировки
- •Условные переменные, барьеры
- •Способы обеспечения безопасности потоков
- •Синхронизация на уровне объектов
- •Синхронизация в стандартной библиотеке
Начало |
Проблемы многопоточности |
Использование многопоточности |
Реентрабельность |
Библиотеки многопоточности |
Локальное хранилище потока |
Способы обеспечения безопасности потоков |
Поддержка многопоточности в C ++ |
Потоковая безопасность
Определение
Потоковая безопасность: (Thread Safety) свойство кода, предполагающее его корректное функционирование при одновременном исполнении несколькими потоками.
Основные методы
Атомарные операции.
Взаимное исключение.
Реентрабельность.
Локальное хранилище потока.
Лекция 8 |
2 / 55 |
Начало |
Проблемы многопоточности |
Использование многопоточности |
Реентрабельность |
Библиотеки многопоточности |
Локальное хранилище потока |
Способы обеспечения безопасности потоков |
Поддержка многопоточности в C ++ |
Потоковая безопасность
Определение
Потоковая безопасность: (Thread Safety) свойство кода, предполагающее его корректное функционирование при одновременном исполнении несколькими потоками.
Основные методы
Атомарные операции.
Взаимное исключение.
Реентрабельность.
Локальное хранилище потока.
Лекция 8 |
2 / 55 |
Начало |
Проблемы многопоточности |
Использование многопоточности |
Реентрабельность |
Библиотеки многопоточности |
Локальное хранилище потока |
Способы обеспечения безопасности потоков |
Поддержка многопоточности в C ++ |
Реентрабельность
Определение
Реентрабельность: (Reentrancy) свойство функции или программы, предполагающее её корректный повторный вызов во время исполнения (например, рекурсивный).
Лекция 8 |
3 / 55 |
Начало |
Проблемы многопоточности |
Использование многопоточности |
Реентрабельность |
Библиотеки многопоточности |
Локальное хранилище потока |
Способы обеспечения безопасности потоков |
Поддержка многопоточности в C ++ |
Требования к реентрабельной функции
Реентрабельная функция
Не должна работать со статическими/глобальными неконстантными данными.
Не должна возвращать адрес статических/глобальных неконстантных данных.
Должна работать только с данными, переданными вызывающей стороной
Не должна опираться на блокировки глобальных ресурсов (Singleton).
Не должна модифицировать своего кода.
Не должна вызывать нереентрабельных программ или процедур.
Лекция 8 |
4 / 55 |