【发布时间】:2014-09-02 16:33:10
【问题描述】:
我有两个线程将访问多个文件。这两个线程可能会尝试同时访问同一个文件。在这种情况下,我如何保证在这种情况下使用 C 中的 pthread 函数和结构对文件进行独占访问,知道这两个线程将访问大量文件?我知道我可以创建大量互斥体,但这似乎不是可行的方法,因为该数量是有限制的。
【问题讨论】:
-
为每个文件维护一个锁,并在任何线程想要访问文件时使用它。
-
为什么线程会有同时访问同一个文件的风险?你能阻止这种可能性吗?线程是否关闭文件?什么是“非常大量的文件”?数十、数百、数千,甚至更多?文件列表来自哪里?
-
1.他们将面临访问同一个文件的风险,因为他们都会对它们进行写入和读取操作。 2. 我不能。 3. 线程既不打开也不关闭文件,访问是通过库完成的。 4.大量文件是数千或数万左右的数字。 5.文件列表是预定的,我事先知道的。
标签: c concurrency pthreads