从两个不同的文件调用一个函数来加载一些数据,在某些情况下它是从一个文件加载的,而在某些情况下它是从另一个文件加载的。但在极端情况下,它会从两个文件中调用,这应该避免。
我可以使用一个全局变量或使用一个函数来确保数据加载只发生一次。
寻找更优雅的解决方案。
linux是否提供了一些API来实现这一点?
谢谢
从两个不同的文件调用一个函数来加载一些数据,在某些情况下它是从一个文件加载的,而在某些情况下它是从另一个文件加载的。但在极端情况下,它会从两个文件中调用,这应该避免。
我可以使用一个全局变量或使用一个函数来确保数据加载只发生一次。
寻找更优雅的解决方案。
linux是否提供了一些API来实现这一点?
谢谢
如果您正在谈论多个线程,那么您需要某种围绕静态变量的互斥锁,以表示该函数是否已经运行。
如果你只有一个线程,那么你不需要互斥锁。
如果是多线程的,请按照此答案中的建议在静态变量周围使用互斥锁,或者使用 pthread_once。