带有全局变量的pthread互斥:正确用法?

时间:2017-12-06 09:49:00

标签: c pthreads mutex

我理解pthreads中互斥的目的,但我经常在这里将mutex与全局变量用作共享资源被认为是一种不好的做法(例如,在这个问题的答案中:{{3} })。

所以,问题:

  1. 将共享资源作为全局变量真的很糟糕吗?
  2. 如果您只有1个共享变量,就像在示例中一样,是否可以使用全局变量,或者仍然没有?
  3. 在流程之间共享变量的更好方法是什么?

2 个答案:

答案 0 :(得分:2)

一般来说:

  

全局变量是邪恶的:

     

是的,您必须在主线程中创建一个变量并将引用传递给必须使用它的其他线程,即使您只有一个共享变量也是如此。

答案 1 :(得分:1)

  1. 将共享资源作为全局变量真的很糟糕吗?

    取决于,由开发人员决定。但总的来说,我们需要谨慎使用共享变量作为全局变量。例如,如果程序如此简单,那么很容易管理全局变量,如果程序很复杂且足够大而有其他复杂性,则维护起来有点不容易。

  2. 如果您只有1个共享变量,就像在示例中一样,是否可以使用全局变量,或者仍然没有?

    以上回答也回答了这个问题。

  3. 在流程之间共享变量的更好方法是什么?

    您可以继续使用适合您的某种序列化方法