|
|
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Возник вопрос по потокам. На входе имеем массив от 0 до 99. Хочу обработать его в потоках. Например: Код: pascal 1. 2. 3. 4. Сколько потоков будет создано на одноядерном проце? А сколько на 4-х ядерном? А сколько на 2-х головом серваке по 8 ядер на каждом? А если я хочу всего 3 потока? Или 9. Как тогда организовать код, который будет создавать поток, передавать ему 0, после создавать второй поток, передавая ему 1, и наконец третий поток с 2 в передаваемом параметре? Дальше больше. Второй поток выполнил задачу. Осталось в работе 2 потока (1-й и 3-й). Значит я могу создать еще один поток и передать ему 3 и т.д... Под рукой Delphi XE8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 19:07 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
CS_nub, Могу сказать за либу, которую использую (STParallel). Там количество потоков равно количеству процессоров (точнее голов): Код: pascal 1. 2. Можно поправить произвольно под себя. В этой записи прогрузить все потоки максимально равномерно не получится. Надо делать честный пулл потоков и раздавать ему задания по мере выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 19:46 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Tutorial:_Using_the_For_Loop_from_the_Parallel_Programming_Library http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Threading.TParallel.For ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 20:17 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
CS_nub...А если я хочу всего 3 потока? Или 9... Да пошли ты их в попу вместе с их мультитредным волшебством, "ускорится-не ускорится", пиши руками, создавай сколько хочет твоя левая пятка, ничего заумного там нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 20:24 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
чччДCS_nub...А если я хочу всего 3 потока? Или 9... Да пошли ты их в попу вместе с их мультитредным волшебством, "ускорится-не ускорится", пиши руками, создавай сколько хочет твоя левая пятка, ничего заумного там нет. да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 20:28 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
чччДДа пошли ты их в попу вместе с их мультитредным волшебством, "ускорится-не ускорится", пиши руками, создавай сколько хочет твоя левая пятка, ничего заумного там нет. Не сталкивался особо с потоками. Не, создавал пару тройку никак не связанных с собой тредов для обработки в фоне какой-нить муры, но исключительно в режиме "отработал и умер". А здесь надо создать N-потоков, следить за каждым, при завершении любого родить еще один и передать ему следующий элемент для обработки. Не могу пока в бошке выстроить блок-схему. А если понизить дельфю до 2007 (официально куплена) без всяких новомодных TTask и пр. то совсем грустно становится :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 06:39 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
zinpubCS_nub, OTL? Готовая либа это очень неплохо, но пока не открылся отдел "пиво-воды" попробую сам чо-нить посочинять, а там поди отпустит... :) з.ы. Пакет скачал, поизучаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 08:51 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
CS_nub, Найди книжку "Parallel Programming with OmniThreadLibrary" - Он там и расжёвывает всё, и вообще много дельного про многопоточку пишет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 09:17 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
zinpubOmniThreadLibrary http://rgho.st/8tq7jdWZx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 10:47 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
CS_nubздесь надо создать N-потоков, следить за каждым, при завершении любого родить еще один и передать ему следующий элемент для обработки. Не надо. CS_nubНе могу пока в бошке выстроить блок-схему. Бери готовый паттерн producer-consumer, сваливай свои элементы в очередь и запускай консумеров сколько хочешь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 12:13 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
CS_nub, Я уже несколько раз кидал библиотеку STParallel. Можно поискать. Она компактная, простая и должна работать скорее всего и на 2007-м тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 22:00 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
zinpubCS_nub, Найди книжку "Parallel Programming with OmniThreadLibrary" - Он там и расжёвывает всё, и вообще много дельного про многопоточку пишет Может кому пригодится "Parallel Programming with OmniThreadLibrary" was updated for OTL 3.07.7. E-book: https://leanpub.com/omnithreadlibrary Print: http://www.lulu.com/shop/http://www.lulu.com/shop/primoz-gabrijelcic/parallel-programming-with-omnithreadlibrary/hardcover/product-24004950.html Web: http://www.omnithreadlibrary.com/book/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2019, 14:57 |
|
||
|
Потоки...
|
|||
|---|---|---|---|
|
#18+
у OTL есть две особенности 1) только новые Delphi, с минимально работоспособными генериками ( т.е. в 2009 и ранее можно даже не пробовать ) 2) только Windows (хотя кто-то собирался портировтаь на FPC/Linux когда-то) Если это не мешает, то как почти всегда сторонняя библиотека лучше, чем её дельфийская копия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2019, 15:51 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=80&tid=2039731]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 356ms |

| 0 / 0 |
