Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / System.Threading: Конвейер / 25 сообщений из 25, страница 1 из 1
26.10.2017, 15:30:17
    #39542571
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
Если я ничего не путаю, стандартный System.Threading был основан на OmniThreadLibrary (OTL)
Так вот в OTL есть примитив Pipeline (конвейер)
Мне интересно, есть ли в стандартной библиотеке какой-либо аналог?

И ещё по конвейеру есть вопрос. Можно ли как-то настраивать приоритизацию потоков?
Например, у меня простенькая задача.
На первом шаге иерархично просматриваем директории, если файл удовлетворяет нашему требованию - кидаем его в output
На втором шаге обрабатываем найденный файл

Так вот есть у нас пул потоков. Нет смысла занимать эти потоки первой задачей, когда есть файлы на обработку.
Иначе первая задача может бесконечно раздуть output, пока вторая задача обрабатывается неспеша
Аналогично, если шагов в конвейере несколько - нет смысла тратить потоки на первые шаги, в то время как существуют необработанные шаги в конце конвейера.

Пара вопросов вдогонку:
- как, находясь в обработчике шага (TProc), выяснить, не находится ли конвейер в состоянии отмены (завершения)?
- правильно ли я понимаю, что первый шаг стартует в одном потоке?
...
Рейтинг: 0 / 0
26.10.2017, 17:51:48
    #39542751
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
SOFT FOR YOU,

Посмотри вот тут ("Ограниченный буфер"). По-моему, твоя задача.
...
Рейтинг: 0 / 0
26.10.2017, 18:22:08
    #39542792
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
Док,

Это вообще разные вещи :)
...
Рейтинг: 0 / 0
26.10.2017, 18:35:17
    #39542806
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
TThreadPool+ TTask + TQueue<T> должны помочь.
...
Рейтинг: 0 / 0
26.10.2017, 19:45:46
    #39542832
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
rgreat,

TQueue<T> не lock-free
А как ты распределишь количества и приоритеты потоков на одну задачу?
И как ты завершишь весь конвейер одним действием?

Я имел ввиду какое-то удобоваримое стандартное решение :)
...
Рейтинг: 0 / 0
26.10.2017, 19:49:36
    #39542833
asviridenkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
Еще один пытается устроиться в известную контору))
...
Рейтинг: 0 / 0
26.10.2017, 21:10:04
    #39542861
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
asviridenkovЕще один пытается устроиться в известную контору))Давно пора прикрепить ветку "ауслоджикс-тест" :))
...
Рейтинг: 0 / 0
26.10.2017, 21:27:51
    #39542866
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
asviridenkov,
Квейд,

В 2015 я проработал в Auslogic-е 5 дней :)
Мне даже оплатили это время :)
...
Рейтинг: 0 / 0
26.10.2017, 21:32:22
    #39542867
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
SOFT FOR YOU> В 2015 я проработал в Auslogic-е 5 дней :)

А чего ушёл? По-моему вы просто созданы друг для друга...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.10.2017, 21:38:15
    #39542868
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
Гаджимурадов Рустам,

Не сработались. Им не понравилось качество моего кода.
Тимлид, например, не понял, почему я для текстового файла делаю сравнение S[i] <= #32, а не S[i] = ' '
Меня не устроило, что задача поставлена не конкретно
...
Рейтинг: 0 / 0
26.10.2017, 23:46:43
    #39542914
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
SOFT FOR YOU> Тимлид, например

А у них тимлид местный был или из Китая (или где у них там головной офис разработки)?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.10.2017, 09:57:24
    #39543014
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
Гаджимурадов Рустам,

Да хз. Вроде Австралия
...
Рейтинг: 0 / 0
27.10.2017, 10:23:53
    #39543038
под ван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
asviridenkovЕще один пытается устроиться в известную контору))
https://www.auslogics.com/ru/ - так это всё на делфях писано? Ёкарный бабай, спасибо, что предупредили!
...
Рейтинг: 0 / 0
27.10.2017, 10:30:10
    #39543041
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
под ванasviridenkovЕще один пытается устроиться в известную контору))
https://www.auslogics.com/ru/ - так это всё на делфях писано? Ёкарный бабай, спасибо, что предупредили!Какая разница, на чем написаны программы "для ускорения работы компьютера". Запускать-то их по меньшей мере бессмысленно.
...
Рейтинг: 0 / 0
27.10.2017, 11:13:59
    #39543068
jmp_original
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
YuRock, неужто и дефрагментацию диска запускать бессмысленно?
...
Рейтинг: 0 / 0
27.10.2017, 11:38:32
    #39543100
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
jmp_originalYuRock, неужто и дефрагментацию диска запускать бессмысленно?

Оп-па, менты!

А ты все еще Win95 используешь?
...
Рейтинг: 0 / 0
27.10.2017, 11:38:35
    #39543101
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
jmp_original,

На SSD - да.
...
Рейтинг: 0 / 0
27.10.2017, 12:08:29
    #39543128
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
Давайте не про Delphi и не про Auslogics :)
Давайте про потоки и конвейер :)
...
Рейтинг: 0 / 0
27.10.2017, 15:24:29
    #39543356
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
jmp_originalYuRock, неужто и дефрагментацию диска запускать бессмысленно?
Даже если и есть смысл иногда (хотя я этого не делал уже лет 10 - с появлением NTFS отпала надобность), зависит от диска, то для этого есть стандартные средства в ОС, сделанные разработчиком ФС.
...
Рейтинг: 0 / 0
27.10.2017, 15:26:18
    #39543359
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
SOFT FOR YOUДавайте не про Delphi и не про Auslogics :)
Давайте про потоки и конвейер :)
Так а что тут обсуждать? Примеры есть, дали тебе вроде. Я лично велосипед свой забацал бы
...
Рейтинг: 0 / 0
27.10.2017, 17:31:17
    #39543458
jmp_original
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
YuRockс появлением NTFS отпала надобность
Интересно, откуда пошла эта легенда, в которую тут даже как минимум двое верят...
...
Рейтинг: 0 / 0
27.10.2017, 18:06:05
    #39543486
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
jmp_originalYuRockс появлением NTFS отпала надобность
Интересно, откуда пошла эта легенда, в которую тут даже как минимум двое верят...
Не знаю про "легенду" (насчет NTFS - действительно, диск фрагментируется гораздо меньше).

Знаю, что Win7 по умолчанию самостоятельно выполнять дефрагментацию, по расписанию (в час ночи, в среду).
А Win8 и новее - дефрагментация выполняется, когда система посчитает нужным...

В общем, война давно закончилась, эшелоны под откос можешь больше не пускать.

Впрочем, дело твое. Некоторые вон и реестр чистят, сомнительными утилитками типа ццклинер....
...
Рейтинг: 0 / 0
27.10.2017, 19:33:22
    #39543525
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
jmp_originalYuRockс появлением NTFS отпала надобность
Интересно, откуда пошла эта легенда, в которую тут даже как минимум двое верят...
Я про себя написал. У меня отпала необходимость. Ни разу не дефрагментировал винты на NTFS на последних своих компьютерах (их штук 7 было года эдак с 2003-го). Мне это не надо просто. Если тормозов нет - зачем их придумавать? Мне не надо.
...
Рейтинг: 0 / 0
27.10.2017, 21:17:55
    #39543544
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
YuRockSOFT FOR YOUДавайте не про Delphi и не про Auslogics :)
Давайте про потоки и конвейер :)
Так а что тут обсуждать? Примеры есть, дали тебе вроде. Я лично велосипед свой забацал бы

Я и забацал свой велосипед через свой класс потока. И создал количество потоков, равному числу ядер
Но у меня задача простая. И очереди, кстати, через спинлок, а не lock-free как в OTL. В любом случае OTL штука интересная и System.Threading тоже. Хочется знать, как цивилизованно решать подобные задачи. Ты же ни на один вопрос стартового топика не ответил. А спрашиваешь, что тут обсуждать )
...
Рейтинг: 0 / 0
27.10.2017, 21:53:42
    #39543557
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Threading: Конвейер
SOFT FOR YOUТы же ни на один вопрос стартового топика не ответил. А спрашиваешь, что тут обсуждать )Ну так в моей дельфе нету System.Threading (или я о ней не знаю), и OmniThreadLibrary я не видел ни разу, т.к. занят работой слишком, чтобы чьи-то изделия изучать.
Так что, что ж мне обсуждать, как не дефрагментацию)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / System.Threading: Конвейер / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]