假设我有一个带有静态函数的类。该类的构造函数使用静态函数作为其入口点执行 pthread_create。
我的问题是:
如果我有这个类的多个实例,它们是否都会使用该函数运行自己的线程?这样做有什么问题吗?而且......如果函数本身有静态变量,我会不会遇到它不能重入的问题?
最佳答案
如果您的构造函数每次都执行 pthread_create()
,那么您将拥有与对象一样多的线程。如果这些线程访问您类中的 static
变量,您将需要确保对这些变量的访问受到互斥锁的保护。 (此外,如果这些线程访问非static
变量,您也需要保护那些,以免其他调用者调用您的对象的方法)。
每个对象一个线程可能太多了,因此您可能需要重新考虑您的设计。
关于C++ 静态函数复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7196094/