我正在尝试解决 C 中的“生产者-消费者”练习。
我有创建两个线程(一个生产者和一个消费者)的主线程,并且它们对缓冲区的访问是使用信号量处理的。
我的问题是:分配信号量的最佳做法是什么?目前我正在考虑两种选择:
1) 将信号量声明为全局变量,以便主线程和 2 个线程可以全局访问它们;
2) 在 main 中声明信号量,然后将它们的指针传递给线程。
哪种解决方案最好?或者您有其他解决方案/建议吗?
一般应避免使用全局变量。它更安全,我会说在 main 中声明它们并通过构造函数或某些 setter 方法将它们传递给线程的方式更具可读性/逻辑性。虽然可能最易读的是,如果您将缓冲区和信号量放在一个结构中并将其指针传递给线程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句