![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ищу пример многопоточного копирования одного файла побайтно
[true]TRIx © (2010-04-18 06:01:00)используя массив под буфер ищи пример многопоточного копирования
QAZ (2010-04-20 10:54:00) [21]Удалено модератором
Германн (2010-04-20 02:47:00) [22]
> Демо © (20.04.10 02:21) [23]
Ну Саш. Я очень сильно сомневаюсь, что ты правильно угадал задачу автора.
Если учесть [6], то я за Sha © (19.04.10 09:32) [13].
И за Sha © (19.04.10 10:36) [16].
Не хочется решать X, когда нужно решить Z.
Демо (2010-04-20 02:21:00) [23]
> > > В формулировке автора реализация не так проста, как
> кажется.> > Всё равно добью пример - из принципа.А какая
> у автора формулировка задачи?Сможет ли твой, Саша пример,
> помочь автору?
Автору вряд ли сможет помочь полностью. Но автор хоть увидит, что овчинка выделки не стоит.
А вот мозги тренировать и разминать их иногда полезно-)
Я периодически берусь за какую-нибудь задачку и решаю.
В данном случае нетривиальная логика - много факторов согласовать нужно.
Ту задачу, которая прозвучала в первом постинге, вообще не так просто решить.
Немудрено, что автор не нашёл примеров в интернете.
Если посмотреть на задачу более абстрактно, то ТЗ можно изменить так:
Есть некоторое количество источников данных и соответствующее им количество приёмников.
Объём данных, которые необходимо транспортировать от каждого источника к приёмнику известен.
Требуется обеспечить транспортировку данных из всех источников до приёмников с заданным ограничением количества объёма данных в единицу времени.
Применения:
- Cкачивание файлов из интернета с ограничением скорости (например, со скоростью не более 1Мбит/сек):
- Фоновое резервное копирование данных в локальной сети, не перегружая её;
Германн (2010-04-20 02:05:00) [24]
> Демо © (20.04.10 01:55) [21]
>
> В формулировке автора реализация не так проста, как кажется.
>
> Всё равно добью пример - из принципа.
А какая у автора формулировка задачи?
Сможет ли твой, Саша пример, помочь автору?
Демо (2010-04-20 01:55:00) [25]В формулировке автора реализация не так проста, как кажется.
Всё равно добью пример - из принципа.
Eraser (2010-04-20 01:50:00) [26]я так понял у автора данных не так уж и много, затык не скорости записи, а скорости обработки. пусть пояснит?
Демо (2010-04-19 12:40:00) [27]
> brother © (19.04.10 10:49) [17]
> а многопоточность при чтении разве поможет?
Скорость чтения одного файла в любом случае ограничена возможностями железа. При чтении из нескольких потоков скорость будет замедлена, возникнут дополнительные накладные расходы.
С другой стороны у автора конкретная задача, никак не связанная со скоростью именно копирования.
> [true]TRIx © (19.04.10 02:24) [6]
> нужны потоки. так как читает в бфер и долго обрабатывает
> там данные, нужна максимальная загрузка. или это еще дольше
> будет работать?
Сделаю пример попозже.
DVM (2010-04-19 11:27:00) [28]Скорость чтения-записи на один поток была как то ограничена искусственно каким-либо факторами (по аналогии со скачиванием файла с сервера через Интернет), то многопоточное чтение-запись помогли бы. А так разницы не будет.
brother (2010-04-19 10:49:00) [29]а многопоточность при чтении разве поможет?
Sha (2010-04-19 10:36:00) [30]> как сделать обработку под 2 процессора сразу
Как создать 2 доп. потока описано в справке, примеры есть в папке Demos.
С другой стороны, мне представляется маловероятным,
что начинающий столкнулся с тяжелой вычислительной задачей.
Интересно было бы узнать, что за задача такая?
Сергей М. (2010-04-19 09:39:00) [31]
> [true]TRIx © (19.04.10 09:38) [14]
SetThreadAffinityMask
[true]TRIx (2010-04-19 09:38:00) [32]как сделать обработку под 2 процессора сразу, с максимальной загрузкой? можно инфу
Sha (2010-04-19 09:32:00) [33]> нужны потоки. так как читает в бфер и долго обрабатывает там данные
Ну так и обрабатывай параллельно.
Причем тут параллельное чтение?
sniknik (2010-04-19 07:10:00) [34]и восемь дисков, на которые копируется " одинфайл побайтно"?
> Хочешь замедлить процесс копирования? Так есть более простые методы, без потоков
+1
Eraser (2010-04-19 03:56:00) [35]> [9] Германн © (19.04.10 02:40)
intel core i7 - восемь исполнительных потоков.
Eraser (2010-04-19 03:56:00) [36]> [7] [true]TRIx © (19.04.10 02:27)
а в чем сложность то? создавай столько потоков, сколько имеется т.н. исполнительных потоков процессора.
Германн (2010-04-19 02:40:00) [37]Процессор-то всё равно один.
А если несколько, то это требует специального решения.
Германн (2010-04-19 02:37:00) [38]
> [true]TRIx © (19.04.10 02:24) [6]
>
> нужны потоки. так как читает в бфер и долго обрабатывает
> там данные
В рамках одного локального компьютера? Имхо бред.
[true]TRIx (2010-04-19 02:27:00) [39]1 берем кусок
2 обрабатываем кусок, массив (долго)
хотелось бы сравнить скорость в один поток и в несколько.
[true]TRIx (2010-04-19 02:24:00) [40]нужны потоки. так как читает в бфер и долго обрабатывает там данные, нужна максимальная загрузка. или это еще дольше будет работать?