Concurrency 对同一文件的并发访问-是否需要互斥体?
我的情况是,我需要异步读取和写入同一个文件。 可以按如下方式恢复对文件的访问的代码:Concurrency 对同一文件的并发访问-是否需要互斥体?,concurrency,mutex,Concurrency,Mutex,我的情况是,我需要异步读取和写入同一个文件。 可以按如下方式恢复对文件的访问的代码: std::string my_bin_filename = "binary_file.bin"; void read_thread(void) { std::ifstream ifs(my_bin_filename, std::ios::binary); char buffer[1024]; do { ifs.readsome(buf
std::string my_bin_filename = "binary_file.bin";
void read_thread(void)
{
std::ifstream ifs(my_bin_filename, std::ios::binary);
char buffer[1024];
do
{
ifs.readsome(buffer, sizeof(buffer));
if(ifs.gcount() > 0)
{
/*
process buffer
...
*/
}
} while (read_condition);
ifs.close();
}
void write_thread(void)
{
std::ofstream ofs(my_bin_filename, std::ios::binary);
char buffer[1024];
do
{
/*
do something with buffer data
...
*/
ofs.write(buffer, sizeof(buffer));
} while (write_condition);
ofs.close();
}
在这种情况下有必要使用互斥体吗?我认为这是不必要的,但也许我错了