Я пишу простую программу производителя / потребителя, чтобы лучше понимать c ++ и многопоточность.В моей ветке, которая управляла потребителем, у меня были первые две строки:
pthread_cond_wait(&storageCond, &storageMutex);
pthread_mutex_lock(&storageMutex);
Но программа застряла, вероятно, в тупике.Затем я переключил строки:
pthread_mutex_lock(&storageMutex);
pthread_cond_wait(&storageCond, &storageMutex);
И это сработало.Может кто-нибудь, пожалуйста, помогите мне понять, почему это сработало, а первое - нет?
Спасибо.