Форум программистов, компьютерный форум, киберфорум
Наши страницы

Чтение/запись в файл с использованием многопоточности - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скиньте литературу по спискам в C++ http://www.cyberforum.ru/cpp-beginners/thread1238914.html
Скиньте литературу по спискам в С++, НО которая расчитана на полного чайника (т.е. где все будет до мелчайших подробностей расписано). Может кто учился по такой, может знает.
C++ Как создать фигуры для тетриса? Привет всем! Захотел написать простенькую игру и решил начать с тетриса. Пишу в visual studio 2013 c++. Как и всегда появляются проблемы: Нарисовал текстурки для фигур, но я не знаю как из текстур... http://www.cyberforum.ru/cpp-beginners/thread1238907.html
C++ Указатель на не объявленную структуру
Допустим я описал структуру. Объявил указатель на эту структуру. struct MyStruct{ char ch; int i; }; std::cout<<sizeof(MyStruct); MyStruct * pMyStruct; Из за выравнивания размер...
C++ Если память для объекта выделяется динамически (строка 33), сортировка sort не работает
Если память для объекта выделяется динамически (строка 33), сортировка sort не работает, если память не выделять, все работает. Как избежать проблему? #include <iostream> #include <list>...
C++ Создайте класс Polar, который предназначен для хранения полярных координат (радиуса и угла) http://www.cyberforum.ru/cpp-beginners/thread1238846.html
Задача такова: Только для любителей математики: создайте класс Polar, который предна- значен для хранения полярных координат (радиуса и угла). Перегрузите операцию + для выполнения сложения для...
C++ Тяжело ли написать утилитку, которая работает как DOS-команда "pause" Тяжело ли написать утилитку, которая работает как DOS-команда "pause", но с автопродолжением через (например) 10 секунд? Научился обрабатывать таймер в бесконечном цикле. Самописный Sleep();... подробнее

Показать сообщение отдельно
Afrit
6 / 6 / 1
Регистрация: 27.08.2013
Сообщений: 128
07.08.2014, 12:39  [ТС]
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Мапим часть файла, размером, равным произведению размера блока на количество ядер.
Имеем указатель на начало этого участка. Далее пишем цикл, типа:
Я правильно полагаю, что вот в этом коде мы мапим часть файла (не равное размеру блока на количество ядер)?
C++
1
2
3
4
5
6
7
8
9
DWORD dwBytesInBlock = sinf.dwAllocationGranularity;
 
        if (qwFileSize < sinf.dwAllocationGranularity)
 
            dwBytesInBlock = (DWORD)qwFileSize;
 
        PBYTE pbFile = (PBYTE)MapViewOfFile(hFileMapping, FILE_MAP_READ, (DWORD)(qwFileOffset >> 32), // начальный байт 
            (DWORD) (qwFileOffset & 0xFFFFFFFF), // в файле
            dwBytesInBlock); // число проецируемых байтов
На этом этапе у нас есть блок. Никаких параллелей пока нет.
А потом мы добавляем параллельность при расчете хэша. Я правильно её реализовал, кстати?
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Дальше мапим следующий участок файла. И так до конца.
Или я чего-то не понимаю, или не умею объяснять.
На самом деле очень здорово объясняете. Меня смутила фраза про то, что у нас одновременно участвует несколько блоков. Это же не так верно?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru