对不起,如果我再次问同样的问题但想验证!
我有两个进程 P1 和 P2。
P1是作家(制片人)。
P2是一个读者(消费者)。
有一些共享内存或 P1 写入的文件,一旦 P1 写入,应该通知 P2 读取。
现在根据我的理解 P1 的伪代码应该是
打开共享文件 创建一个命名事件(“Writedone”)来表示 P2 进程的写入 对文件进行一些处理 互斥锁() 写入文件 互斥锁() 名为事件的信号。 CloseHandle 存档
现在在P2
打开共享文件的句柄 打开命名事件的句柄 命名事件上的 WaitForSingleEvent(“Writedone”) 从文件中读取 CloseHandle 存档
问题:
- 阅读器是否需要锁?阅读器只会读取文件而不更改它。所以我想读者不需要锁。想法?在没有锁的情况下会出错吗?
- 我每次在读写过程中都会打开和关闭文件的句柄。我认为这不是必需的。我可以在构造函数中打开文件句柄并在读写器的析构函数中关闭它。但是当它被用于写作时,我可以从文件中读取吗?
编辑:每次 writer 在 File 末尾写入 10 个字节,并且 reader 应该读取 writer 写入的最新 10 个字节。