Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ищу пример многопоточного копирования одного файла побайтно


Страницы:   1 2 3

[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]

нужны потоки. так как читает в бфер и долго обрабатывает там данные, нужна максимальная загрузка. или это еще дольше будет работать?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо