Извините за мой английский - я русский.Блокировка мьютекса в одной теме и разблокировка его в другом
Будет ли этот код правильным и портативным?
void* aThread(void*)
{
while(conditionA)
{
pthread_mutex_lock(mutex1);
//do something
pthread_mutex_unlock(mutex2);
}
}
void* bThread(void*)
{
while(conditionB)
{
pthread_mutex_lock(mutex2);
//do something
pthread_mutex_unlock(mutex1);
}
}
Фактически в целевом приложении У меня есть три потока - два для записи массива и один для чтения. И мне нужно, чтобы сразу после того, как один из потоков изменил массив, третий поток отображает содержимое массива.
Хорошо. Но как насчет разблокировки мьютекса, который был заблокирован в другом потоке? Неопределенное поведение? –
Как говорится: «если поток пытается разблокировать мьютекс, который он не заблокировал ... UB» – user562374