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();
}
在这种情况下有必要使用互斥体吗?
我认为这是不必要的,但也许我错了