Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Проблема недетерминизма в многопоточных программах. Поддержка синхронизации потоков в POSIX Threads. Критические секции



Программа называется недетерминированной,если при одних и тех же входных данных она может демонстрировать различное наблюдаемое поведение.


Преодоление недетерминизма: синхронизация:

Примитивы синхронизации в PTHREADS: Семафоры. Критические секции. Условные переменные.

«Мютекс» - mutex – mutual exclusion (взаимное исключение);

Объявление и инициализация:

pthread_mutex_t – тип для взаимного исключения;

pthread_mutex_init(pthread_mutex_t* mutex, void* attribute);

pthread_mutex_destroy(pthread_mutex_t* mutex);

Захват и освобождение мютекса:

pthread_mutex_lock(pthread_mutex_t* mutex);

pthread_mutex_unlock(pthread_mutex_t* lock);

Освобождение мютекса может быть осуществлено только тем тредом, который производил его захват.

Итого: PTHREADS – переносимая библиотека системного уровня для разработки многопоточных программ

Дает возможность получить эффективность близкую к максимально-возможной, но при этом требуется серьезная переработка кода.





Дата публикования: 2015-01-13; Прочитано: 420 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...