Лекция: Проблема недетерминизма в многопоточных программах. Поддержка синхронизации потоков в 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 – переносимая библиотека системного уровня для разработки многопоточных программ

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

 

еще рефераты
Еще работы по информатике