在正确分配信号的地方



我正在尝试解决c。

中的"生产者 - 消费者"练习

我拥有创建两个线程(一个生产者和一个消费者(的主要主体,并且使用信号量处理它们对缓冲区的访问。

我的问题是:分配信号量的最佳实践是什么?目前,我正在考虑两个选择:

1(将信号量声明为全局变量,因此主和两个线程可以全球访问它们;

2(声明主内部的信号量,然后将其指针传递到线程。

哪种解决方案是最好的?还是您还有其他解决方案/建议?

通常应避免全局变量。它更安全,我会说出更可读/逻辑的方式,以将它们声明为主,并通过构造函数或某些设置器方法传递到线程。虽然最可读的是,如果您同时将缓冲区和信号量放在结构中并将其指针传递给线程。

最新更新