
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.03.2020, 17:11
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Добрый день. Подскажите пожалуйста, правильно ли я запускаю потоки. Мне нужно 8 потоков, по этому цикл for 1-8. И еще, не мало важный вопрос. Где вопросительные знаки, там я не понимаю, как обратится к конкретному элементу массива... Подскажите пожалуйста. Сейчас такой код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Как дать каждому потоку, по скачки 1 файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2020, 17:56
|
|||
|---|---|---|---|
|
|||
Потоки.. Несколько вопросов. |
|||
|
#18+
Tech N9neКак дать каждому потоку, по скачки 1 файла? Передать ему i в конструктор. Или, раз уж создаёшь в заторможенном состоянии - в public member. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2020, 18:08
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
А лучше сразу делать правильно и изолировать поток от внешних переменных. Т.е. скачивать в собственный объект, а в главном методе загружать в массив IMG. Либо вообще не связываться с загрузкой изображения в потоке (разве что картинки гигантские - но тут еще надо смотреть, поддерживает ли TsImage многопоточность). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2020, 18:50
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
TQueue поможет делить файлы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2020, 19:16
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Кто мешает при создании потока указать, какой и куда файл скачивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2020, 19:28
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Также еще надо подумать, как определять момент завершения всех потоков, рассмотреть случай досрочного закрытия программы и потихоньку прийти к выводу, что FreeOnTerminate - зло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2020, 19:37
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
goldmi45 Кто мешает при создании потока указать, какой и куда файл скачивать? Например файлы могут быть сильно разного размера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.03.2020, 09:03
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Tech N9ne, конкретно по вопросу Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.03.2020, 06:33
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Tech N9ne, Параметры можно передавать в конструкторе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.03.2020, 22:12
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Zelius, Спасибо. Скажите пожалуйста, вот например мне нужно чекнуть прокси на валид... У меня их n количество. Как я могу распределить n кол-во проксей, на n кол-во потоков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 01:10
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Создай список проксей а потоками разбирай из списка по одному на проверку пока не закончатся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 01:31
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
rgreat Создай список проксей а потоками разбирай из списка по одному на проверку пока не закончатся. Я немного не понимаю саму механику работы) К примеру 1000 проксей, 5 потоков... если я сделаю так же как в прошлый раз, с переменной, то чекнуться только 5 проксей) так как 5 потоков.. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 01:48
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Сделай в потоке цикл проверок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 02:01
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
rgreat Сделай в потоке цикл проверок. Так я вот и не разберу, как мне проверять, какие strings уже чекались, а какие нет.. Я понял что в цикле.. Ладно, спасибо, видать просто поспать нужно, утро вечера мудреннее) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 03:04
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Tech N9ne rgreat Сделай в потоке цикл проверок. Так я вот и не разберу, как мне проверять, какие strings уже чекались, а какие нет.. Я понял что в цикле.. Ладно, спасибо, видать просто поспать нужно, утро вечера мудреннее) Зачем вам потоки, если вам надо решать задачи, которые успешно решают таски... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Кол-во одновременно выполняемых задачи будет зависеть от кол-ва виртуальных процессоров (CPU * Core) * магическая константа, но можно задать для пула ограничение магической константы = 1 если очень надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 05:44
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Потоки и таски - почти одно и тоже. И если уж идти в сторону прослоек над TThread и синтаксического сахара тогда надо парралель фор делать. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 06:18
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
rgreat, Возможно вы меня недопоняли? Про таски впервые слышу) Код: pascal 1. Всё что мне нужно это понять, как не дать определённому количеству потоков, обращаться к одному и тому же strings[]. Я могу сделать потоки, но только с количеством равному stringlist.count; И каждый поток будет обрабатывать свой strings[]. Но stringsов может быть и 1000 и 10000.. Но как сделать любое колчество потоков, и заставить работать со строками из stringlist, избегая одновременного обращение к одному и тому же strings[]. Если код который вы привели, это прямой ответ моему вопросу, тогда простите, я еще глуп, что бы до конца понять, что к чему там). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 06:23
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
Tech N9ne, Если вы до сих пор ничего не поняли - наймите програмиста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 09:25
|
|||
|---|---|---|---|
|
|||
Потоки.. Несколько вопросов. |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2020, 12:20
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
X-Cite Кол-во одновременно выполняемых задачи будет зависеть от кол-ва виртуальных процессоров (CPU * Core) * магическая константа, но можно задать для пула ограничение магической константы = 1 если очень надо... Может так: TThreadPool.Default.SetMinWorkerThreads(100) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2020, 00:40
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
DmSer X-Cite Кол-во одновременно выполняемых задачи будет зависеть от кол-ва виртуальных процессоров (CPU * Core) * магическая константа, но можно задать для пула ограничение магической константы = 1 если очень надо... Может так: TThreadPool.Default.SetMinWorkerThreads(100) ? Опытным путем SetMaxWorkerThreads - Задает ограничение сверху. Максимальное кол-во одновременно выполняемых задач в указанном пуле. По умолчанию Cpu * Core * 25; Не может быть меньше, чем Cpu * Core SetMinWorkerThreads - Кол-во задач, которое может быть принято в работу до увеличения пула. По умолчанию Cpu * Core. Не может быть больше чем указано в SetMaxWorkerThreads. Т.е. если у вас 1 процессор и 4 ядра, то по умолчанию MaxWorkerThreads = 1 * 4 * 25 = 100 MinWorkerThreads = 1 * 4 Это значит что одновременно может выполняться не более 100 задач, при этом только 4 задачи могут быть запущены сразу... остальные поместятся в очередь и будут запущены либо после выполнения одной из четырех, либо через магическое время (вроде 1 секунда) будут запускаться по одной при условии, что CPU не загружен на 80%, увеличивая кол-во потоков для выполнения задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2020, 01:33
|
|||
|---|---|---|---|
|
|||
Потоки.. Несколько вопросов. |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2020, 04:48
|
|||
|---|---|---|---|
Потоки.. Несколько вопросов. |
|||
|
#18+
X-Cite Опытным путем SetMaxWorkerThreads - Задает ограничение сверху. Максимальное кол-во одновременно выполняемых задач в указанном пуле. По умолчанию Cpu * Core * 25; Не может быть меньше, чем Cpu * Core Cpu и Core в Вашей формуле что означают? В System есть только переменная CPUCount (ей присваивается SysInfo.dwNumberOfProcessors), означающая количество логических ядер (Number of CPU Cores detected) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2038506]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 536ms |

| 0 / 0 |
