Если значение семафора равно 0 и вы ждете его, я всегда думал, что поток блокируется.Почему следующий код не блокируется.
#include <stdio.h>
#include <pthread.h>
#include <semaphore.h>
sem_t sA;
void* funcA(void* param) {
sem_wait(&sA);
printf("Thread A\n");
pthread_exit(0);
}
int main() {
sem_init(&sA, 0, 0);
pthread_t tA;
pthread_create(&tA, NULL, funcA, NULL);
pthread_exit(0);
sem_destroy(&sA);
return 0;
}