There's nothing to stop you from having multiple threads writing to different parts of the same file.
I have a program that sorts a large binary file but the majority of time is still spent on disk I/O, so I'm just wondering will I gain any extra speed by doing I/O in parallel.
If the program is disk-bound, making it multithreaded (and still writing the same amount of data to the same disk) will not speed it up.
If we are talking about a traditional hard drive, sequential I/O is generally faster than I/O that involves moving the disk head back and forth. With this in mind, splitting the I/O across threads might even be counter-productive.
There are several avenues to explore as far as speeding things up:
- Reducing the amount of I/O (e.g. by employing a sorting algorithm that requires less I/O, or by doing more work in-memory);
- Improving I/O throughput, for example by using a faster drive.