Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Потоковая безопасность (презентация).pdf
Скачиваний:
20
Добавлен:
28.06.2014
Размер:
697.48 Кб
Скачать

Начало

Проблемы многопоточности

Использование многопоточности

Реентрабельность

Библиотеки многопоточности

Локальное хранилище потока

Способы обеспечения безопасности потоков

Поддержка многопоточности в C ++

Потоковая безопасность

Определение

Потоковая безопасность: (Thread Safety) свойство кода, предполагающее его корректное функционирование при одновременном исполнении несколькими потоками.

Основные методы

Атомарные операции.

Взаимное исключение.

Реентрабельность.

Локальное хранилище потока.

Лекция 8

2 / 55

Начало

Проблемы многопоточности

Использование многопоточности

Реентрабельность

Библиотеки многопоточности

Локальное хранилище потока

Способы обеспечения безопасности потоков

Поддержка многопоточности в C ++

Потоковая безопасность

Определение

Потоковая безопасность: (Thread Safety) свойство кода, предполагающее его корректное функционирование при одновременном исполнении несколькими потоками.

Основные методы

Атомарные операции.

Взаимное исключение.

Реентрабельность.

Локальное хранилище потока.

Лекция 8

2 / 55

Начало

Проблемы многопоточности

Использование многопоточности

Реентрабельность

Библиотеки многопоточности

Локальное хранилище потока

Способы обеспечения безопасности потоков

Поддержка многопоточности в C ++

Реентрабельность

Определение

Реентрабельность: (Reentrancy) свойство функции или программы, предполагающее её корректный повторный вызов во время исполнения (например, рекурсивный).

Лекция 8

3 / 55

Начало

Проблемы многопоточности

Использование многопоточности

Реентрабельность

Библиотеки многопоточности

Локальное хранилище потока

Способы обеспечения безопасности потоков

Поддержка многопоточности в C ++

Требования к реентрабельной функции

Реентрабельная функция

Не должна работать со статическими/глобальными неконстантными данными.

Не должна возвращать адрес статических/глобальных неконстантных данных.

Должна работать только с данными, переданными вызывающей стороной

Не должна опираться на блокировки глобальных ресурсов (Singleton).

Не должна модифицировать своего кода.

Не должна вызывать нереентрабельных программ или процедур.

Лекция 8

4 / 55