【发布时间】:2014-06-29 15:25:34
【问题描述】:
我有一个程序同时运行两个线程(主线程和一个 pthread)。该程序管理本地文件夹上的文件缓存。线程执行以下任务:
- 线程 0 可以读取文件并将其下载到缓存中;
- 线程 1 可以读取和写入缓存中的文件。
这意味着我需要确保对缓存中的每个文件的独占访问。问题是,我不知道该怎么做!
为缓存中的每个文件创建一个互斥锁显然是可行的,但是文件的绝对数量使这个选项令人望而却步。使用flockfile 和funlockfile 似乎是我最好的选择,但是使用这些函数不会强迫我为缓存中的每个文件都设置文件描述符吗?也就是说,我不需要先fopen缓存中的所有文件,然后将生成的文件描述符保存在两个线程都可以访问的缓冲区中吗?
【问题讨论】:
标签: c linux multithreading pthreads