Блокировка мьютекса в одном потоке и разблокировка его в другом

Простите за английский - я русский.

Будет ли этот код корректным и переносимым?

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);
    }
}

На самом деле в целевом приложении у меня есть три потока - два для записи массива и один для чтения. И мне это нужно сразу после того, как один из потоков меняет массив, третий поток отображает содержимое массива.

9
задан Eugene Pakhomov 5 January 2011 в 20:26
поделиться