Форум программистов, компьютерный форум CyberForum.ru

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

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

Показать сообщение отдельно
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 Посмотреть сообщение
Дальше мапим следующий участок файла. И так до конца.
Или я чего-то не понимаю, или не умею объяснять.
На самом деле очень здорово объясняете. Меня смутила фраза про то, что у нас одновременно участвует несколько блоков. Это же не так верно?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru