Здравствуйте уважаемые Гуру HiAsm.
Нарисовал схему многопоточного копирования файлов на основе контейнеров
code_30531.txt
Теперь нужно определить какая схема отработала, (для вывода сообщения об окончании копирования)
Вроде вывел точки состояния схемы, но чего то не получается вывести это сообщение по окончании процесса.
Как в данном случае определить завершение копирования файлов
Этот топик читают: Гость
Ответов: 824
Рейтинг: 138
|
|||
карма: 1 |
| ||
файлы: 1 | code_30531.txt [8.1KB] [288] |
Ответов: 1536
Рейтинг: 176
|
|||
sashaoli, а, что обязательно создавать внутри контейнера дополнительные потоки? Попробуй без Thread в контейнере.
|
|||
карма: 1 |
|
Ответов: 824
Рейтинг: 138
|
|||
Не знаю..., так для надежности, смотрел здесь на примеры.
Вот и решил - Thread наверное будет не лишним... И разве контейнер создает оделенный поток? |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
sashaoli писал(а): Нарисовал схему многопоточного копирования файлов |
|||
карма: 25 |
| ||
Голосовали: | foksov |
Ответов: 824
Рейтинг: 138
|
|||
ser_davkin писал(а): а, что обязательно создавать внутри контейнера дополнительные потоки? Попробуй без Thread в контейнере.Проверил подправленную схему. Все таки нужно использовать Thread, потому как Ваш пример работает с ошибками - не копируются все файлы. И потом - в Вашем случае копии контейнера выполняются последовательно, то есть пока одна копия не завершит работу следующая не запускается. ------------ Дoбавленo в 19.24: Tad писал(а): А зачем это нужно ?Для ускорения процесса копирования множества файлов. Например: игра Skyrim - больше 11000 файлов и больше 5 Гб, обычным методом копируется от 5 до 8 мин. (у меня) Хотя комп у меня не слабый. А с помощью приведенной мной схемы около 2 мин. В общем - это не только метод копирования файлов, а вообще ускорение обработки большого количества файлов. Ведь в контейнер можно засунуть и другие операции по работе с файлами. Да, и чтобы засечь время (программно) нужно определить момент завершения работы всех копий схемы. |
|||
карма: 1 |
|
Ответов: 274
Рейтинг: 47
|
|||
Жесткий диск потоками не ускоришь
|
|||
карма: 0 |
|
Ответов: 824
Рейтинг: 138
|
|||
Laetar писал(а): Жесткий диск потоками не ускоришь А при чем здесь ускорение жесткого диска? Вы можете у себя на компе запустить браузер, несколько качалок, редактировать какой то документ сохранять/читать его. И это происходит одновременно. Ведь нету у Вас ситуации когда при закачке файла из инета (то есть записи на диск) - Вы не можете сохранить документ ворд или скопировать файл в другую папку? Это, наверное, потому что все эти операции выполняются в своих потоках, пусть даже в псевдопотоках. |
|||
карма: 1 |
|
Ответов: 274
Рейтинг: 47
|
|||
sashaoli, У жестких дисков есть параметр скорости чтения/записи (Мб/сек)
|
|||
карма: 0 |
|
Ответов: 824
Рейтинг: 138
|
|||
Я так понимаю ни у кого нет нет вразумительного совета.... А жаль...
|
|||
карма: 1 |
|
Ответов: 1376
Рейтинг: 197
|
|||
Многопоточное массовое копирование файлов
sashaoli писал(а): Для ускорения процесса копирования множества файловскорее для ускорения процесса износа диска sashaoli писал(а): Вы можете у себя на компе запустить браузер, несколько качалок, редактировать какой то документ сохранять/читать его |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Laetar писал(а): Жесткий диск потоками не ускоришь Я потому и спросил: Tad писал(а): А зачем это нужно ?Если грубо и на пальцах, то: 1. Ты запустил свою прогу. 2. ОС выделяет ей отдельный поток и время активности этого потока. Условно возьмём 6 сек. (На самом деле это время измеряется в мкс или,в лучшем случае, в мс) 3. Ты организовуешь 6 потоков. ОС тебе время не добавит, а просто разделит, выделенные 6 сек на 6 твоих потоков, т.е. на каждый по 1 сек. По времени копирования выиграша не будет, а вот хард будет двигать головками как сумасшедший. |
|||
карма: 25 |
|
Ответов: 824
Рейтинг: 138
|
|||
Я привел пример.
В общем - это не только метод копирования файлов, а вообще ускорение обработки большого количества файлов. Я понимаю, что винт больше не выдаст чем может и тем более старый винт. Возможно я задал не правильное название темы. Копирование, это пример. Почему копирование? - то что легче всего было организовать.(для меня) Скажем так - Многопоточная обработка файлов(данных). Например: парсинг, замена текста, .... здесь может бить не только работа с файлами - можно со строками, сжатие, ну напридумывать можно много. |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
sashaoli писал(а): а вообще ускорение обработки большого количества файлов. |
|||
карма: 25 |
|
Ответов: 824
Рейтинг: 138
|
|||
Ну хорошо - ошибаюсь, убедили.
Но все таки, как определить завершение обработки данных всех копий контейнера? |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
sashaoli писал(а): как определить завершение обработки данных всех копий контейнераДа, у тебя в схеме нарушен порядок событий |
|||
карма: 25 |
|