![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.11.2013
Сообщений: 65
|
![]()
К примеру есть числа:
1 2 3 4 5 6 7 8 9 10 Моя программа прибавляет к первому 1, потом выводит результат в мемо, потом ко второму прибавляет 1, выводит результат в мемо и так до 10. В результате мы получаем: 2 3 4 5 6 7 8 9 10 11 Теперь вопрос: мне надо ускорить этот процесс с помощью потоков. Если просто скопировать код в тело потока и запустить их штук 10, то мы получим не ускоренную работу а повторение каждого из результата по десять раз. Как сделать так что бы поток понимал что этим числом уже занимается другой поток и без особых потерь переходил к другому числу? Не спрашивайте зачем. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]()
"разбить" список на НЕпересекающиеся участки и каждому потоку НАЗНАЧИТЬ(задать) свой участок.
И помнить что поток НЕ ДОЛЖЕН напрямую работать с VCL(формы, контролы (тот же Memo)). По крайней мере использовать synchonize при этом (form, Memo внутри потока). или так http://programmersforum.ru/showthrea...hlight=TThread и потоки и мемо.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 17.12.2014 в 09:55. |
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 12.11.2013
Сообщений: 65
|
![]()
Потоки мои создаются динамично и все было бы классно, если бы каждый поток знал какой он номер. Но он не знает.
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 12.11.2013
Сообщений: 65
|
![]()
Я тебя прекрасно понял. Разделил данные на количество потоков, теперь хорошо бы что бы каждый поток знал к какому кусочку ему подключаться. Как сделать раздатчик? Потоки динамические.
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 12.11.2013
Сообщений: 65
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оптимизация вычислений с помощью потоков. | skazochnik | Помощь студентам | 10 | 06.10.2014 21:13 |
Многократное использование потоков(пул потоков) | ProgrammistRT | Общие вопросы Delphi | 10 | 06.04.2014 13:42 |
Решение задачи в Pascal ABC с помощью функции. | Krakaziabr | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 22.12.2013 16:12 |
Ускорение выполнения запроса MySQL | Gulik | БД в Delphi | 8 | 05.09.2011 22:16 |
Разделить время выполнения потоков | MrBrain | Общие вопросы .NET | 0 | 22.06.2010 18:13 |