某个进程中会有多个线程会频繁的访问数量非常非常多的文件,要求当某线程对某个文件A进行
“写操作”时其他线程将不允许打开文件A(如可以触发个异常)。考虑到文件数目巨大,要
是对每个文件都配一把互斥锁的话那简直是噩梦,不知如何解决这个问题???
我想到下面几个解决方法:
1、用CFile::shareDenyWrite打开文件,但我试了一下,好像这个是用来防护多个进程对某个文件的访问的,而对于同一进程中的多个线程这种情况并无作用;
2、将所有访问文件的操作都由某个单独的线程T来做,其他线程要是想访问文件就发个消息给线程T,这样也就没有了同步加锁的问题,但我觉得,由于很多线程都会非常频繁的访问许多文件,只由一个线程T来处理所有IO,怕效率不行,线程T处理不过来;愁死我了!!!!!