99% 的实际并发问题都可以用生产者-消费者解决。
void Tproduce() { while (1) printf("("); }
void Tconsume() { while (1) printf(")"); }
在 printf
前后增加代码,使得打印的括号序列满足
- 一定是某个合法括号序列的前缀
- 括号嵌套的深度不超过 n
- n=3,
((())())(((
合法 - n=3,
(((())))
,(()))
不合法
- n=3,
- 同步
- 等到有空位再打印左括号
- 等到能配对时再打印右括号
https://jyywiki.cn/OS/2022/slides/6.slides#/1/3
【并发控制:同步 (条件变量、信号量、生产者-消费者和哲♂学家吃饭问题) [南京大学2022操作系统-P6]】https://www.bilibili.com/video/BV17T4y1S7RS
标签:括号,生产者,信号量,并发,printf,吃饭问题 From: https://www.cnblogs.com/rsapaper/p/16717290.html