我需要在我的程序中缓存文件指针,但问题是我可能有多个线程访问该文件指针缓存。例如,如果 thread1 请求文件指针,并且发生缓存未命中,则调用 fopen 并缓存指针。现在,当线程 2 到达并发生缓存命中时,两个文件共享导致错误的读/写指针。我想到的一些事情——
- 我可以跟踪文件的使用时间,但目前我不知道它什么时候发布,并且包含此功能会干扰我的设计
- 如果发生命中,我可以发送文件指针的副本,但我不知道这样做的任何方法,以便这两个副本不共享读/写位置
我应该如何进行?
我需要在我的程序中缓存文件指针,但问题是我可能有多个线程访问该文件指针缓存。例如,如果 thread1 请求文件指针,并且发生缓存未命中,则调用 fopen 并缓存指针。现在,当线程 2 到达并发生缓存命中时,两个文件共享导致错误的读/写指针。我想到的一些事情——
我应该如何进行?