Я пишу программу шестнадцатеричного редактора, и я думал о том, когда пользователь пытается открыть очень большой файл (3 ГБ +). Я бы не хотел, чтобы пользователь сидел целый день, чтобы весь файл загружался, когда он уже загружал некоторые данные.Доступ к многопоточному файлу
Итак, вот мой вопрос: возможно ли, чтобы несколько потоков читали файл (не записывали) одновременно, в разных местах, а затем, когда определенный порог данных был прочитан 1, этот поток отображает его а другие продолжают читать? Будет ли это предлагать мне улучшение производительности? Или полоса пропускания памяти уменьшит любое увеличение скорости, которое я мог бы получить от использования нескольких потоков?
Так что, может быть, I/O будет отдельным потоком из графического интерфейса? Затем, если GUI попытался просмотреть данные, которые еще не были получены, я мог бы прервать поток ввода-вывода и получить запрошенные данные. – samoz
@Samoz - Это точно правильный подход - не блокируйте поток пользовательского интерфейса на IO. – Michael