例子:优雅地实现生产者-消费者
sem_t empty = SEM_INIT(depth);
sem_t fill = SEM_INIT(0);
void T_produce() {
P(&empty);
printf("(");
V(&fill);
}
void T_consume() {
P(&fill);
printf(")");
V(&empty);
}
- 从 empty 袋子里拿球 → produce (然后把球放到 fill)
- 从 fill 袋子里拿球 → consume (然后把球放回 empty)