Я новичок в C, и я просто больше учился в книге, которую взял.Я получил блокировки мьютекса и условные переменные и все в таком духе.В книге я видел упражнение, в котором говорилось, что нужно переключить программу с мьютекс-блокировками и условно на программу, в которой вместо этого используются семафоры для достижения тех же результатов.В данный момент я застрял, потому что когда я запускаю код, я полагаю, что у меня возникает ситуация «тупиковой ситуации», и после этого ничего не происходит.Я не уверен, что не так, но любая помощь будет оценена.Это то, что у меня сейчас.
int main(){
pthread_t pid;
pthread_t cid;
sem_init(&empty, 1, BUFSIZE);
sem_init(&full, 1, BUFSIZE);
randData = (unsigned int) time(NULL);
printf("Creating threads\n\n");
pthread_create(&pid, NULL, produce, ids);
pthread_create(&cid, NULL, consume, ids);
pthread_join(pid, NULL);
pthread_join(cid, NULL);
}