powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по многопоточке
25 сообщений из 161, страница 2 из 7
Вопрос по многопоточке
    #40117055
lleming
С приорити мне непонятно, каким образом у задачи определить приоритет? Вот пришла таск от пользователя он разбил ее на 5 подчазад и отправил в pool, от второго пришла. Как приоритет определить по какому параметру. Короче тут очень сложно сделать чтобы и утилизация была хорошей и при этом гарантии были.
Приоритетом в простом случае может выступать кол-во задач которые у пользователя счас запущено. Чем больше это число, тем ниже приоритет у новопоступающей задачи. Надо только вести статистику по текущим задачам, в простом варианте - это не сложно: просто счетчик in-progress задач. Но можно статистику с "памятью" вести, мол, а сколько вообще задач этот пользователь запускал за последнюю минуту. В этом прелесть подхода с кучей - алгоритм приоритезации полностью отделен от thread pool'ов, можно придумывать разные реализации не задумываясь о потоках.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117070
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
сколько вообще задач этот пользователь запускал за последнюю минуту
конечно выдумывать можно бесконечно. Так как ТЗ нету.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117095
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter,
Конкретнее! Что качают и на что лимиты!
Ограничение это последнее дело программиста.


Petro, я вас очень люблю, но не разводите пожалуйста флуд в моих постах, пишите по делу или вообще не пишите
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117116
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
lleming
С приорити мне непонятно, каким образом у задачи определить приоритет? Вот пришла таск от пользователя он разбил ее на 5 подчазад и отправил в pool, от второго пришла. Как приоритет определить по какому параметру. Короче тут очень сложно сделать чтобы и утилизация была хорошей и при этом гарантии были.
Приоритетом в простом случае может выступать кол-во задач которые у пользователя счас запущено. Чем больше это число, тем ниже приоритет у новопоступающей задачи. Надо только вести статистику по текущим задачам, в простом варианте - это не сложно: просто счетчик in-progress задач. Но можно статистику с "памятью" вести, мол, а сколько вообще задач этот пользователь запускал за последнюю минуту. В этом прелесть подхода с кучей - алгоритм приоритезации полностью отделен от thread pool'ов, можно придумывать разные реализации не задумываясь о потоках.


Это похоже на шедулер OS, тут пока вижу только одно замечание. В ос поток с меньшим приоритетом все равно свой квант получит а тут с priority queue не факт.
Т.е. пользователь 1 запустил задачу она разделилась на 100 подзадач 99 выполнились одна осталась.
где в конце еще один пользователь запустили свою итого пока его 99 задач не выполнится у первого задача не окончится.

То бишь задачи будут иметь тенденцию заканчивать вместе. Пришел самый первый, ушел со всеми.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117128
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раскрою немного деталей. Задачи, которые планируется запускать параллельно - это копирование файлов. Если еще точнее, то у пользователей есть вьювер в браузере какой-то хитрый (к нему у меня доступа нет), так этот вьювер умеет показывать файлы (pdf, tiff, 3d, там много всяких форматов). Но для показа, файл должен лежать в определенной папке в файловом хранилище. Сейчас работает так: Пользователь открывает документ, мы читаем из этого документа файл, сохраняем его на диске, и тогда вьювер его подхватывает. Но это работает медленно, заказчик хочет, чтобы мы заранее обрабатывали пачку следующих документов, которые у пользователя на подходе, т.е. которые он откроет следующие (там специфика работы оператора довольно предсказуемая). Т.е. загрузка заранее так сказать. Так вот их-то и надо запускать в несколько потоков асинхронно. Причем пользователь может вернуться к старому документу, тогда надо избежать повторного копирования. Ну и чтобы пересечений никаких не было, типа чтобы не начали копировать два одинаковых файла одновременно.
У меня возникает вопрос теперь а не станет ли файловое хранилище тонким местом? Да и вообще, может NIO попробовать, чтобы потоки вообще не держать пока копируется файл. Не хочется заморачиваться, это код "на окраине" проекта, его раз сделать и забыть.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117136
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
PetroNotC Sharp
rabiter,
Конкретнее! Что качают и на что лимиты!
Ограничение это последнее дело программиста.


Petro, я вас очень люблю, но не разводите пожалуйста флуд в моих постах, пишите по делу или вообще не пишите
щаззз.
Что мешает все рассказать о задаче?
Если умалчиваете значит специально набрасываете.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117139
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Пользователь открывает документ, мы читаем из этого документа файл, сохраняем его на диске, и тогда вьювер его подхватывает. Но это работает медленно,
мне за тебя юзкейс писать?
- вася клиент дал запрос get http//sql.ru?doc=1
- он всегда начинает с первого и потом всегда по списку
- первый док отдали за 30 сек.
- второй док он не хочет ждать 30сек.
Так?
...
Тогда вопрос - где тут лимит на потокЮзверя?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117140
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему юзкейсу решение элементарное с заранее создаваемым кешем при каждом входе юзверя. Никаких пулов тут не надо.
Один фоновый поток создаст кеш пока юзверь разбирается с первым документом.
Ограничение:
- бэкенд тормозной
- клиент импотент и не может сам запрашиаать по AJAX и делать кеш клиента.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117141
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
По моему юзкейсу решение элементарное с заранее создаваемым кешем при каждом входе юзверя. Никаких пулов тут не надо.
Один фоновый поток создаст кеш пока юзверь разбирается с первым документом.
Ограничение:
- бэкенд тормозной


мы не знаем, какой документ пользователь откроет, их 100500, мы не можем все закешировать заранее еще до входа пользователя. Только после того, как пользователь выбирает какой-нибудь документ, мы можем предсказать, какие он кликнет следующие, и вот тут надо начать из загружать заранее в несколько потоков. Сколько документов надо заранее скопировать - мы тоже не знаем, их может быть 5, может быть 100, зависит от того, что нам скажет предсказательный алгоритм. Но вне зависимости от этого, мы должны на эту работу выделить не более N потоков. Причем потоки я сам создавать не буду, я буду их брать из общего пула. Так вот чтобы один пользователь не окупировал весь пул, для этого и нужны "квоты"

PetroNotC Sharp

- клиент импотент и не может сам запрашиаать по AJAX и делать кеш клиента.


То, что в браузере у клиента, всмысле этот вьювер, мы, к сожалению, не можем выбирать
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117142
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
мы не знаем, какой документ пользователь откроет, их 100500

rabiter
там специфика работы оператора довольно предсказуемая). Т.е. загрузка заранее так сказать.

?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117143
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
мы не знаем, какой документ пользователь откроет, их 100500

rabiter
там специфика работы оператора довольно предсказуемая). Т.е. загрузка заранее так сказать.

?


?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117144
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

дайте угадаю, вы просто случайным образом клавиши нажимаете?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117145
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

имеется ввиду, что мы знаем последовательность, но не знаем количество. И если алгоритм скажет надо 100 закешировать, в такой-то последовательности, то мы должны это сделать, но не более чем N потоками (по описанным выше причинам)
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117146
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
предсказательный алгоритм
классный распил бабла.
Один пилит пару месяцев предсказатель.
Второй менеджер потоков.
Третий пишет математику предсказтеля)))
А почему документ читаем 30 сек молчим
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117147
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
PetroNotC Sharp,

имеется ввиду, что мы знаем последовательность, но не знаем количество. И если алгоритм скажет надо 100 закешировать, в такой-то последовательности, то мы должны это сделать, но не более чем N потоками (по описанным выше причинам)


мы не знаем, какой документ пользователь откроет ПЕРВЫМ, их 100500
как откроет первый - дальше уже можем предсказывать
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117148
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
PetroNotC Sharp,

дайте угадаю, вы просто случайным образом клавиши нажимаете?
от ваз есть юзкейс? ТЗ внятное?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117149
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
предсказательный алгоритм
классный распил бабла.
Один пилит пару месяцев предсказатель.
Второй менеджер потоков.
Третий пишет математику предсказтеля)))
А почему документ читаем 30 сек молчим


знали бы вы что у нас за клиент)))
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117150
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
PetroNotC Sharp,

дайте угадаю, вы просто случайным образом клавиши нажимаете?
от ваз есть юзкейс? ТЗ внятное?


блин я раза три уже описал вам ситуацию, о чем вы
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117151
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
как откроет первый - дальше уже можем предсказывать

IDnext= getReadDOC(IDcurrent)
Так?
Тогда вы сможете только следующий один загрузить.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117153
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
как откроет первый - дальше уже можем предсказывать

IDnext= getReadDOC(IDcurrent)
Так?
Тогда вы сможете только следующий один загрузить.


грубо говоря
Код: java
1.
List<String> IDnext = getReadDOC(IDcurrent)
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117154
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
блин я раза три уже описал вам ситуацию, о чем вы
5 раз спросил - зачем ограничивать. Дай цитату на твой ответ.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117155
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
PetroNotC Sharp
пропущено...

IDnext= getReadDOC(IDcurrent)
Так?
Тогда вы сможете только следующий один загрузить.


грубо говоря
Код: java
1.
List<String> IDnext = getReadDOC(IDcurrent)



но это не важно, вопрос вообще не в этом, вы все время уводите в сторону, на протяжении уже многих лет. Я тут пишу, и каждый раз я сталкиваюсь с вами, что вы за человек такой зачарованный, я уже не представляю жизни без вас тут
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117156
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
блин я раза три уже описал вам ситуацию, о чем вы
5 раз спросил - зачем ограничивать. Дай цитату на твой ответ.


Ну разве не очевидно? Один пользователь может занять все потоки собой, а другие будут лапу сосать.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117157
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
rabiter
пропущено...


грубо говоря
Код: java
1.
List<String> IDnext = getReadDOC(IDcurrent)




но это не важно, вопрос вообще не в этом, вы все время уводите в сторону, на протяжении уже многих лет. Я тут пишу, и каждый раз я сталкиваюсь с вами, что вы за человек такой зачарованный, я уже не представляю жизни без вас тут
потому что я шарю в архитектуре.
Я выше вам дал юзкейс и решение.
Вы молчите))))
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117158
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Ну разве не очевидно? Один пользователь может занять все потоки собой, а другие будут лапу сосать.
нет. Каким образом выше метод может выдать лист на миллион документов?
Подробнее.
...
Рейтинг: 0 / 0
25 сообщений из 161, страница 2 из 7
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по многопоточке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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