powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по многопоточке
161 сообщений из 161, показаны все 7 страниц
Вопрос по многопоточке
    #40116776
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, вопрос возник такой. В многопоточке я не особо силен, но иногда задачки попадаются, которые надо решать. Вот сейчас такая проблемка.

Окружение Java EE, при нажатии кнопки пользователем надо обработать параллельно N задач, но потоков можно задействовать не больше M штук, причем потоков может быть меньше, чем задач, тогда первый освободившийся поток берет следующую задачу и так далее. Если задачи кончились, то поток возвращается в пул сервера. Причем пользователь может во время всего этого еще раз нажать кнопку и добавить еще сколько-то задач в этот же пул задач. Тогда, если часть потоков уже вернулись в пул, мне надо их опять запустить на обработку (но в сумме все равно не должно быть больше M рабочих потоков).
Собственно такая задача, так как я сижу на Java EE, я могу стартовать асинхронный метод через @Asynchronous. Помимо этого могу использовать пул потоков общий серверный (его можно заинжектить как ресурс)
Нагрузка не большая, т.е. нормальное поличество задач типа 5 - 10 (не тысячи). Количество потоков - около пяти (не тысячи). Т.е. тут можно смело использовать блокирующие алгоритмы, с точки производительности можно не заморачиваться.
Пока у меня простое решение такое: задачи все складывать в thread safe set какой-нибудь (можно взять из ConcurrentHashMap)
Количество потоков контроллировать счетчиком AtomicInteger - стартую поток, увеличиваю. Поток завершается (если нет задач) - уменьшаю счетчик. При старте новой пачки задач - проверяю счетчик, не превысил ли он максимума. Если надо - дозапускаю потоки на обработку. Т.е. как-то так. Я в многопоточке не особо. Пару раз прочитал Concurrency in Practice, понимание есть, но практики мало.
Посоветуйте, может я велосипед изобретаю? Я бы создал свой пул на M потоков и все дела, но мне для каждого пользователя надо будет создавать такой пул (потому что все пользователи вообще независимы от друг друга и каждый имеет свои потоки). Так как я на Java EE сижу, это не вариант (или?).
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116778
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,

Если у тебя на сервере настроен пул задач, то ничего считать и складывать никуда не надо. просто добавляешь новую задачу в пул и всё - он сам разберётся когда её запустить можно будет.

Свой пул потоков работает аналогично - запускаешь с нужными настройками и просто добавляешь в него задачи по мере поступления.
Для начала - https://habr.com/ru/post/326146
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116779
Никаких своих коллекций и AtomicInteger'ов не надо. Очередь задач и управление потоками - это все за тебя делает пул, см. java.util.concurrent.Executors. Тебе нужно просто создать еще один пул с M потоками.

В Spring @Asynchronous'y можно указать пул, я думаю в JEE то же самое должно быть. Эти потоки - обычно не те же что используются App Server'ом для обработки запросов.
rabiterЯ бы создал свой пул на M потоков и все дела, но мне для каждого пользователя надо будет создавать такой пул (потому что все пользователи вообще независимы от друг друга и каждый имеет свои потоки).Пул потоков не должен быть у каждого пользователя свой. Он должен быть общий. Иначе ты никак не будешь контроллировать сколько потоков может создаться в системе и ее легко смогу положить.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116794
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev

...
Пул потоков не должен быть у каждого пользователя свой. Он должен быть общий. Иначе ты никак не будешь контроллировать сколько потоков может создаться в системе и ее легко смогу положить.


Никогда пулы потоков не понимал. На мой взгляд, какое-то совершенно не гибкое решение. Ну и подозреваю, при пулах так же полно ситуаций, когда "ее легко смогут положить".

rabiterПока у меня простое решение такое: задачи все складывать в thread safe set какой-нибудь (можно взять из ConcurrentHashMap)
Количество потоков контроллировать счетчиком AtomicInteger - стартую поток, увеличиваю. Поток завершается (если нет задач) - уменьшаю счетчик. При старте новой пачки задач

1. На мой взгляд, переусложнение. Тогда уж брать обычные блокированные thread safe коллекции или самому обернуть методы в synchronized. Прикручивать поверх Concurrent кучу AtomicInteger - тот еще г...но код получиться.

2. Кроме стандартных коллекций, можно найти ряд кастомных (например JCTools). То, что Вам нужно, называется bounded коллекции (с ограничением размеров). Будет и concurrent (точнее lock less или wait free) и самопальные (и скорее всего не корректные) Atomic'и прикручивать не нужно. Но если нагрузка не сильно большая (не миллионы обменов в секунду), то см. п.1

IMHO
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116815
Leonid Kudryavtsev
Stanislav Bashkyrtsev

...
Пул потоков не должен быть у каждого пользователя свой. Он должен быть общий. Иначе ты никак не будешь контроллировать сколько потоков может создаться в системе и ее легко смогу положить.


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

по поводу общего пула и из него дергать потоки - ну да, это понятно. Я просто хотел еще квоты выдать на каждого пользователя, чтобы он мог из него дернуть, допустим, не больше пяти потоков в рамках своей сессии. Чтобы не получилось так, что один пользователь запустил 100 задач и все остальные сосут лапу. Хотя... когда сервер выдает потоки на обработку запросов (там отдельный пул), он же не смотрит по http сессиям, типа на эту сессию уже выделили 5 потоков, больше ей не давать - он просто выдает потоки и все, и как-то работает. Короче я склоняюсь к тому, что нужен один пул на всех пользователей, нафиг эти квоты.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116828
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Пул потоков не должен быть у каждого пользователя свой. Он должен быть общий. Иначе ты никак не будешь контроллировать сколько потоков может создаться в системе и ее легко смогу положить.


так я и не хочу вообще потоки сам создавать, я хотел просто брать из пула сервера потоки, но не больше чем N для каждого пользователя
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116832
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
В Spring @Asynchronous'y можно указать пул, я думаю в JEE то же самое должно быть. Эти потоки - обычно не те же что используются App Server'ом для обработки запросов.


ах, спринг 😸... В JEE такого нельзя, там вообще мало что можно, плюс еще и исходники проблематично посмотреть, потому что для каждого app server они свои)
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116848
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Stanislav Bashkyrtsev

...
Пул потоков не должен быть у каждого пользователя свой. Он должен быть общий. Иначе ты никак не будешь контроллировать сколько потоков может создаться в системе и ее легко смогу положить.


Никогда пулы потоков не понимал. На мой взгляд, какое-то совершенно не гибкое решение. Ну и подозреваю, при пулах так же полно ситуаций, когда "ее легко смогут положить".

если очередь не забыли ограничить в голову приходит только хитрый кейс если ошибки не отлавливают то поток умирает и пересоздается для каждой новой таски. Количество потоков в пуле не ограничено. Задачи передеваемые в pool не заканчиваются никогда. Дедлоки от зависимых тасок. Но это специфические кейсы.
Подскажите еще, будет интересно узнать.

Leonid Kudryavtsev

rabiterПока у меня простое решение такое: задачи все складывать в thread safe set какой-нибудь (можно взять из ConcurrentHashMap)
Количество потоков контроллировать счетчиком AtomicInteger - стартую поток, увеличиваю. Поток завершается (если нет задач) - уменьшаю счетчик. При старте новой пачки задач

1. На мой взгляд, переусложнение. Тогда уж брать обычные блокированные thread safe коллекции или самому обернуть методы в synchronized. Прикручивать поверх Concurrent кучу AtomicInteger - тот еще г...но код получиться.

мне наоброт показалось что самое простое решение (за исключением найти готовое), сделать обертку вокруг executor от контейнера со счетчиками per user с expired time. (Хотя выглядет не очень красиво, счетчики еще освобождать нужно как то, да еще и непонятно как)

С bounded collection не очень то понятно зачем они нужны. Они вроде как нужны ссылки на таски хранить, но как то не особо по задаче ссылки хранить нужно, об этом executor контейнера сам позаботиться. А вот счетчики нужны. На базе JCTools что ипользоваться чтбы подменить дефолтовый BlockingQueue в ThreadPoolExecutor, непонятно как поскольку контейнер. А если как есть использоваться то кто будет консумером, как executor сделать консумером непонятно еще одну таску запустить чтобы она перекладывала в executor
Сам с похожей задачей поскольку постольку сталкивался, но ограчились только одной таской пер user (экспорт генерация файла на лету) и там тупо у пользователя прописывали переменную и все.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116939
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
5 юзверей? Ты пошутил? Чем тогда контейнер аппсервера не подошел? Его потоки?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116946
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Пул потоков не должен быть у каждого пользователя свой.
он по факту говорит о пуле задачек.
Не слышал о логической схеме и физической в субд?
автордобавить еще сколько-то задач в этот же пул задач.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40116950
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
http сессиям
то есть у вас http и Application server.
Разве запросы по http не исполняются ПАРАЛЛЕЛЬНО?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117007
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter,
5 юзверей? Ты пошутил? Чем тогда контейнер аппсервера не подошел? Его потоки?


Я не говорю, что я не собираюсь использовать потоки аппсервера. Как раз их-то я и собираюсь использовать. Но я хотел бы еще ввести квоты, чтобы каждому пользователю на обработку его нужд выдавать из этого пула не больше N потоков.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117008
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
Тут два момента
1) выше ты написал нафиг эти квоты
2) юз кейс напиши юзверя. Зачем ЕМУ эти самые квоты.
Мне кажется это придумка придумщика программиста.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117009
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Как раз их-то я и собираюсь использовать.
потоки контейнера автоматически стартует сам контейнер. Они из коробки.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117011
ra-001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rabiter,
найди спеку Java EE той версии, с которой работать надо.
В спеке есть глава, должна быть, в которой описаны ограничения. Ну и следуй им.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117012
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter,
Тут два момента
1) выше ты написал нафиг эти квоты
2) юз кейс напиши юзверя. Зачем ЕМУ эти самые квоты.
Мне кажется это придумка придумщика программиста.


Типичный кейс. юзер накликал от злости 100 долгоиграющих тасок. Да через UI можно ограничить но если те кто автоматизировал свою рутину и уних уже апсы написаны которые качают сразу все так что лимиты нужны (на всякий).

Поменялось поведение польз0вателся предполагалось что больше одной таски ему не понадобится в связи с новым законодотельством теперь ему нужно 10 тасок запускать(да бакенд здесь не причем но 100 пользователей могут забить канал, cpu) так что плохеет всем.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117017
lleming, квоты - это больше о том чтоб деньги пользователи платили за их выделение. А если вопрос стоит только в том чтоб злой пользователь не заблокировал других - так это больше про task scheduling. Т.е. пул все равно один, просто он задачи должен брать в нужном порядке. Это лишь значит что не обычную FIFO коллекцию надо использовать, а какую-то кучу к примеру (PriorityQueue).
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117021
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
lleming, квоты - это больше о том чтоб деньги пользователи платили за их выделение. А если вопрос стоит только в том чтоб злой пользователь не заблокировал других - так это больше про task scheduling. Т.е. пул все равно один, просто он задачи должен брать в нужном порядке. Это лишь значит что не обычную FIFO коллекцию надо использовать, а какую-то кучу к примеру (PriorityQueue).


Про деньги топикстартер ничего не сказал. Больше выглядет, что ему хочется что таску большую можно разбить и запустить паралельно при этом не абузя других пользователей. Ну он назвал это квотами (оно и выглядет как квоты).
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117026
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming
PetroNotC Sharp
rabiter,
Тут два момента
1) выше ты написал нафиг эти квоты
2) юз кейс напиши юзверя. Зачем ЕМУ эти самые квоты.
Мне кажется это придумка придумщика программиста.


Типичный кейс. юзер накликал от злости 100 долгоиграющих тасок. Да через UI можно ограничить но если те кто автоматизировал свою рутину и уних уже апсы написаны которые качают сразу все так что лимиты нужны (на всякий).

Поменялось поведение польз0вателся предполагалось что больше одной таски ему не понадобится в связи с новым законодотельством теперь ему нужно 10 тасок запускать(да бакенд здесь не причем но 100 пользователей могут забить канал, cpu) так что плохеет всем.


Во, спасибо! вы меня прекрасно поняли, именно в этом суть. Ну "квоты" слово может не самое удачное, как заметил Stanislav Bashkyrtsev

Stanislav Bashkyrtsev
lleming, квоты - это больше о том чтоб деньги пользователи платили за их выделение. А если вопрос стоит только в том чтоб злой пользователь не заблокировал других - так это больше про task scheduling. Т.е. пул все равно один, просто он задачи должен брать в нужном порядке. Это лишь значит что не обычную FIFO коллекцию надо использовать, а какую-то кучу к примеру (PriorityQueue).


Вы предлагаете расшарить очередь задач между пользователями, наградить ее логикой, чтобы она имплементировала справедливость и приоритезировала задачи. Тут уйма вариантов выстрелить себе в ногу. Луше уж пусть у каждого пользователя будет своя очередь задач (пользователи разграничены через @SessionScoped бины). Но ваша идея отличная, я вообще на вооружение принял.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117028
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ra-001
rabiter,
найди спеку Java EE той версии, с которой работать надо.
В спеке есть глава, должна быть, в которой описаны ограничения. Ну и следуй им.


Да я ее вдоль и поперек уже всю изучил за 10 лет в этом проекте)) Тут особо нечего изучать, пул есть, потоки берем оттуда, вот и все. Просто я не хочу, чтобы один пользователь взяь больше, чем положено.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117029
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну более менее я понимаю так. есть настраиваемый threadpool делаем его cachedthreadpool (цифры для примера) допустим 30 max size.
делаем квоту в 3 потока на пользователя. Т.е паралельно с тои или иной степерью гарантии 10 пользователей получат свою квоту. Остальные попадут в очередь или делаем ограничение и отбиваем лишние запросы на задачи пока не освободится место для пользователя.

Проще всего в реализации не очень в утилизации ресурсов. Т.е. если пользователь всего один в данным момент, то идеально сразу на все свободные потоки закинуть задачи(ну может чуть меньше чтобы запас был всегда). Но тут уже состояние нужно пула отслеживать.
Тут уже сложнее реализация.

С приорити мне непонятно, каким образом у задачи определить приоритет? Вот пришла таск от пользователя он разбил ее на 5 подчазад и отправил в pool, от второго пришла. Как приоритет определить по какому параметру. Короче тут очень сложно сделать чтобы и утилизация была хорошей и при этом гарантии были.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117031
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
Конкретнее! Что качают и на что лимиты!
Ограничение это последнее дело программиста.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117032
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕСЛИ НЕ ОГРАНИЧИВАТЬ, то что ломается аффтар?
Больше взял чем положено что?))))))
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117033
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming
не очень в утилизации ресурсов.
монеторизации имхо.
Или прогер скупердяй.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #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
Вопрос по многопоточке
    #40117159
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
пропущено...


но это не важно, вопрос вообще не в этом, вы все время уводите в сторону, на протяжении уже многих лет. Я тут пишу, и каждый раз я сталкиваюсь с вами, что вы за человек такой зачарованный, я уже не представляю жизни без вас тут
потому что я шарю в архитектуре.
Я выше вам дал юзкейс и решение.
Вы молчите))))


А кто тут не архитектор.. каждый раз из года в год, я создаю пост, успеваю получить несколько конструктивных ответов, и через 5 часов я обнаруживаю себя спорящим с вами на какие-то вообще не имеющие отношения к топику темы. Где, кстати, blazkowicz? Он всегда по делу писал...
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117160
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас метод дает лист будущих переходов.
Если юзверь свернул с листа то кеш протух и его аннулировать. Делать новый лист.
На 5 юзверей пихать доки в сессию и не мудрить.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117161
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
Ну разве не очевидно? Один пользователь может занять все потоки собой, а другие будут лапу сосать.
нет. Каким образом выше метод может выдать лист на миллион документов?
Подробнее.


Зачем на миллион? достаточно 50. На 50 легко, документы могут быть прилинкованы к другим документам, иметь связи, вот по этим связям пользователь и будет ходить. 50 потоков бах ему одному, не жирно?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117162
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
не имеющие отношения к топику темы
дак таких миллион!
Прогер захотел потоки. Ему сказали не нужно. Но он пошел делать все равно.
Так?)))
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117163
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
У вас метод дает лист будущих переходов.
Если юзверь свернул с листа то кеш протух и его аннулировать. Делать новый лист.
На 5 юзверей пихать доки в сессию и не мудрить.


вы типичный представитель русского IT форума, вы не советуете, вы говорите "топикстартер - унылый тупица, я весь в белом пальто тут только". Так дело не пойдет. Вопрос, который я тут задал, он вообще не про это, там я конкретно написал, что нам нужно в данной ситуации. У нас тут может все надо менять и переписывать, думаете я не знаю? Но конкретно сейчас мне надо решить эту задачу, зачем вы уводите в сторону так далеко?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117164
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
blazkowicz? Он всегда по делу писал...
глупо ходить в больницу и требовать в окошке профессора медицины.
Хочу блазковича!
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117165
rabiterЯ тут пишу, и каждый раз я сталкиваюсь с вами, что вы за человек такой зачарованный, я уже не представляю жизни без вас тут
я если вижу что пост от петро, то стараюсь даже не читать. Просто пропускай их. Иначе все темы захламляются. Я не видел еще ни одной темы где бы он что-то адекватное (да что там - хотя бы просто в тему) написал.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117166
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
не имеющие отношения к топику темы
дак таких миллион!
Прогер захотел потоки. Ему сказали не нужно. Но он пошел делать все равно.
Так?)))


вы сейчас про кого?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117167
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
топикстартер - унылый тупица
цитату!
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117168
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
rabiterЯ тут пишу, и каждый раз я сталкиваюсь с вами, что вы за человек такой зачарованный, я уже не представляю жизни без вас тут
я если вижу что пост от петро, то стараюсь даже не читать. Просто пропускай их. Иначе все темы захламляются. Я не видел еще ни одной темы где бы он что-то адекватное (да что там - хотя бы просто в тему) написал.

О, спасибо, добрый человек! 😁 лучик здравого смысла, я тут увяз просто как-то не заметно для себя) все, я пошел
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117169
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
Вот и станислав-стас подтянулся.
Дак кто флудит?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117171
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
Удачи вам со стасом!
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117175
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
PetroNotC Sharp
пропущено...
нет. Каким образом выше метод может выдать лист на миллион документов?
Подробнее.


Зачем на миллион? достаточно 50. На 50 легко, документы могут быть прилинкованы к другим документам, иметь связи, вот по этим связям пользователь и будет ходить. 50 потоков бах ему одному, не жирно?
тока прочитал. Хммм... ты даже не врубаешься что надо ограничивать не пул потоков AppServera а просто твой алгоритм
Код: java
1.
List<String> IDnext = getReadDOC(IDcurrent)


Так как пул на 10 потоков спокойно обслужит тогда твои списки названий документов 1-2 уровня по урл.
Разумеется список не должен расти пока юзверь серфит налево и направо.
Свернул с дорожки - обнулил список.
А ты - "жирно"\"не жирно"
))
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117186
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
пропущено...


Зачем на миллион? достаточно 50. На 50 легко, документы могут быть прилинкованы к другим документам, иметь связи, вот по этим связям пользователь и будет ходить. 50 потоков бах ему одному, не жирно?
тока прочитал. Хммм... ты даже не врубаешься что надо ограничивать не пул потоков AppServera а просто твой алгоритм
Код: java
1.
List<String> IDnext = getReadDOC(IDcurrent)


Так как пул на 10 потоков спокойно обслужит тогда твои списки названий документов 1-2 уровня по урл.
Разумеется список не должен расти пока юзверь серфит налево и направо.
Свернул с дорожки - обнулил список.
А ты - "жирно"\"не жирно"
))


Нет, если надо обработать 50 документов, то я должен все 50 обработать. К слову, их может быть и 100 и больше, но не тысячи. Ничего обрубать нельзя - требование заказчика. Пользователь довольно долго может сидеть и втыкать в первый документ. Пока остальные как раз загружаются. Из тех 50 или 100 документов, он может следующим выбрать не обязательно первый, а, скажем, 37й, для примера. Если пользователь сворачивает с дорожки, то те документы, которые еще не обработаны - убираются с обработки. Те, которые уже были обработаны, они остаются, так что если пользователь вернется опять к ним, то у него все быстро отобразится.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117191
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем должен быть как блокирующий метод, типа ensureDocumentProcessed(id)
так и асинхронный типа ensureDocumentsProcessed(Collection<String> ids)
И при этом исключена "двойная" обработка одгого и того же документа.
Я думаю, завяжусь на ConcurrentHashMap с ее computeIfAbsent для блокирующего метода.
Ну а для асинхронного там надо локи будет как-то использовать, я потом могу скинуть что получится у меня в итоге, если интересно.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117194
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
опять юз кейс
- первый заход на документ 35
List<String> IDnext = getReadDOC(35)
36,37,......445, 446
Итого 50100 вариантов следующего шага.
Так?
Если след. шаг и он кликнул не на 446-ой а на тот что нет в списке?
get ?=999
List<String> IDnext = getReadDOC(999)
СТАРЫЙ СПИСОК НАДО ОБНУЛИТЬ. НАФИГ ЕГО ГРУЗИТЬ?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117195
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Привем должен быть как блокирующий метод, типа ensureDocumentProcessed(id)
так и асинхронный типа ensureDocumentsProcessed(Collection<String> ids)
нельзя бежать программировать как стас пока не ясно ТЗ и подводные камни решений.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117197
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter,
опять юз кейс
- первый заход на документ 35
List<String> IDnext = getReadDOC(35)
36,37,......445, 446
Итого 50100 вариантов следующего шага.
Так?
Если след. шаг и он кликнул не на 446-ой а на тот что нет в списке?
get ?=999
List<String> IDnext = getReadDOC(999)
СТАРЫЙ СПИСОК НАДО ОБНУЛИТЬ. НАФИГ ЕГО ГРУЗИТЬ?


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

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

просто если я тупо буду брать из пула сервера потоки на это, понятно же в чем загвоздка?

Код: java
1.
2.
3.
- первый заход на документ 35
List<String> IDnext = getReadDOC(35)
36,37,......445, 446



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

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

замечательно.
Все верно!
То есть список не растет в геометрической прогрессии а ограничиваем логикой и ресурсами или местом для локальных файлов.
Итого выше я сказал - ПОТОКИ САМИ НЕ ОГРАНИЧИВАЕМ. ОБЫЧНЫЙ ПУЛ С ОБЫЧНОЙ НАСТРОЙКОЙ maxThread
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117202
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
если все потоки дать ему, то это будет больше 400 - понятно, что надо ограничить каким-то числом N

не потоки а задачи. И он справится.
2 потока на 2 ядра скопируют файлы быстрее чем 20 потоков.
Абстрактно.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117203
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
самое сложное тут алгоритм кеша.
От него зависит всё.
Делай тест с простым пулом и не парь мозги.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117204
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
если все потоки дать ему, то это будет больше 400 - понятно, что надо ограничить каким-то числом N

не потоки а задачи. И он справится.
2 потока на 2 ядра скопируют файлы быстрее чем 20 потоков.
Абстрактно.


Так сколько потоков давать? два?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117207
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
по умолчанию столько сколько есть.
Ну как пример - 300-350 для нагр проекта (def 150) /opt/tomcat/conf/server.xml
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117208
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter,
по умолчанию столько сколько есть.
Ну как пример - 300-350 для нагр проекта (def 150) /opt/tomcat/conf/server.xml


нет, не согласен. Вы предлагаете не ограничивать. Может получится, что 50 документов мне надо загрузить, т.е. я если не буду ограничивать, то я выделю из пула 50 потоков на это. Это неэффективно, во первых они будут тупо жать IO от диска который будет зашиваться от такой наглости, во вторых, этих потоков будет не хватать для других целей.
Лучше выделить N (2 или 3) и пусть они такой маленькой командой копируют эти 50 файлов. Как раз для этого и нужна настройка N, чтобы можно было откалибровать в рантайме и найти баланс
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117209
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Лучше выделить N (2 или 3) и пусть они такой маленькой командой копируют эти 50 файлов

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

угу. И инструмент калибровки написать.
Еще немного и будет пул шарповый. Там MS сделал крутой алгоритм - само подстраивается под нагрузку.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117211
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
Лучше выделить N (2 или 3) и пусть они такой маленькой командой копируют эти 50 файлов

ну дак поставь не в рантайме а в настройках пула админских.
Ты прав - это опытным путем.
Я тебе выше 2 сказал - тебе не понравилось.


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

угу. И инструмент калибровки написать.
Еще немного и будет пул шарповый. Там MS сделал крутой алгоритм - само подстраивается под нагрузку.


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


ну блин, кастомер ставит на свое окружение, у нас такого нет, откуда мы знаем что у него будет?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117218
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter,
по умолчанию столько сколько есть.
Ну как пример - 300-350 для нагр проекта (def 150) /opt/tomcat/conf/server.xml


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

не понял.
А где у вас пароли, адреса, логины, конфиги?
Вы обязаны проверить все режимы и написать инструкцию.
Какое умолчание в типичном окружении. При каком диске. При каких размерах документов.
Конечно если у заказчика фотография 3 на 4 вместо ворд файлов то и загружать будут другие настройки.
У вас это костыль! Вы в первом посте сказали!
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117221
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming
PetroNotC Sharp
rabiter,
по умолчанию столько сколько есть.
Ну как пример - 300-350 для нагр проекта (def 150) /opt/tomcat/conf/server.xml


Такое ощущение что я чтото пропустил. Вроде как нужно в фоне запускать эти задачи. При чем здесь пулы обработки http запросов?

да. Можно в фоне.
Он не реагирует на это решение.
Тогда можно общий пул на всех юзверей. Они же общими документами пользуются.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117222
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Помимо этого могу использовать пул потоков общий серверный (его можно заинжектить как ресурс)
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117223
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming
PetroNotC Sharp
rabiter,
по умолчанию столько сколько есть.
Ну как пример - 300-350 для нагр проекта (def 150) /opt/tomcat/conf/server.xml


Такое ощущение что я чтото пропустил. Вроде как нужно в фоне запускать эти задачи. При чем здесь пулы обработки http запросов?


нет, речь не про пул http запросов (есть такой пул, да). Но в App Server (например в Wildfly) есть еще и служебный пул потоков, отдельный от пула http. Я про него и говорю. Например, когда используешь аннотацию @Asynchronous, или таймер, то берется именно этот пул.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117226
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
ну блин, кастомер ставит на свое окружение, у нас такого нет, откуда мы знаем что у него будет?

не понял.
А где у вас пароли, адреса, логины, конфиги?
Вы обязаны проверить все режимы и написать инструкцию.
Какое умолчание в типичном окружении. При каком диске. При каких размерах документов.
Конечно если у заказчика фотография 3 на 4 вместо ворд файлов то и загружать будут другие настройки.
У вас это костыль! Вы в первом посте сказали!


у нас продукт, кастомеров много. Конкретно этот функционал для одного конкретного кастомера, но он так же может быть использован и другими. Кто-то использует load balancer, кто-то не использует (монолит у нас), разные app servers (слава богу, сейчас только WF поддерживаем, но было время, когда был и GF и WS). Базы тоже разные могут быть, так что это выливается в очень настраиваемое приложение, куча системных настроек и т.д.

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


Такое ощущение что я чтото пропустил. Вроде как нужно в фоне запускать эти задачи. При чем здесь пулы обработки http запросов?

да. Можно в фоне.
Он не реагирует на это решение.
Тогда можно общий пул на всех юзверей. Они же общими документами пользуются.


Я стараюсь на вас не реагировать, но пока не особо получается

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

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

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

если не костыль тогда надо ответить
- почему 40 сек грузится документ на бэке?


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

и не получится)
С профи я всегда нахожу общий язык.
А спесивые стасы гоняются за петром и плакаты "не слушай его вешают"


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

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

и не получится)
С профи я всегда нахожу общий язык.
А спесивые стасы гоняются за петром и плакаты "не слушай его вешают"


Так обходите стороной мои посты раз я не профи, я же просил, от вас проку ноль, один вред

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

взаимно. Вы медленно растете. Значит ленивый.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117243
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) У каждого таска заведи поле parentId. Какой-нить автоинкремент атомик счетчик
2) Заведи конкарент мапу userName -> parentId, куда складывай последний активный parentId
3) в коде таски проверяй что parentId находится в этой мапе, если нет - скип.

Смысл в том чтобы перенести логику отмены исполнения в сам таск. Пусть хоть 500 раз нажмет сабмит - выполняться будет только самый последний.

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


Так обходите стороной мои посты раз я не профи, я же просил, от вас проку ноль, один вред

а мне пофиг на твои желания. Ты улучшил sql_ru? Тут никто никому ничего не должен.
Я выше сказал что костыль. Нет? Ответь на вопрос)))


Ну по крайней мере не ухудшил) Но, сейчас на полном серьезе скажу вам, я думаю порой, посоветуюсь с парнями на sql_ru, а потом как вспомню во что выливается переписка с вами, так 10 раз подумаю. Вы же абсолютно занимаете собой и своим флудом весь эфир, за вами не слышно ни кого и ни чего. Вы втираете, извините, какую-то дичь, зачем вы это делаете, специально? Сознавайтесь!

PetroNotC Sharp
rabiter
Я бы с вами в одном проекте и недели не ужился

взаимно. Вы медленно растете. Значит ленивый.


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

это ваше?
А я в многопоточке больше вас знаю.
Тогда что вы нюни и оффтоп распустили?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117246
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
кончайте флудить. Разговаривайте ИНЖЕНЕРНЫМ языком.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117247
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
Я в многопоточке не особо

это ваше?
А я в многопоточке больше вас знаю.
Тогда что вы нюни и оффтоп распустили?


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


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


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


да я как бы и не утверждал, что я Архитектор) а у вас комплекс похоже, избавляйтесь срочно!


ну, кстати, от хренового архитектора вреда гораздо больше, чем от хренового программиста, так что вы вреднее меня, да
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117255
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
тебеж сказал игнорировать))))
Я то отдыхаю тут.
Повторяю свой вопрос для программиста
- какого фига у вас документы качаются N минут?
Что из за этого надо городить такие чудовищные костыле вроде
"угадай куда я тыкну в браузере"
)))
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117256
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
брат, позови инженера. Мне неинтересно.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117258
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Я то отдыхаю тут.


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

Я то отдыхаю тут.


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


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


а я знаю?

Дак узнайте и приходите завтра. Нам расскажете.
Или признавай что костыль так как "вообще в расстройстве".
Ты про костыль споришь уже пол часа.
Нафиг ты на работе нужен такой.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117262
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
пропущено...


а я знаю?

Дак узнайте и приходите завтра. Нам расскажете.
Или признавай что костыль так как "вообще в расстройстве".
Ты про костыль споришь уже пол часа.
Нафиг ты на работе нужен такой.


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

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


А вы и завтра тут отдыхаете? ну нельзя же так себя баловать)

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

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

rabiter
Тут сейчас конкретно мне нет ни времени ни желания разводить рефакторинг всего этого безобразия

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

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


Да забудьте вы Стаса. Сосредоточьтесь на мне.

- не согласен, что костыль. Но и упарываться тут не стоит, потому что потом этот код не надо будет поддерживать и вносить в него изменения. Достаточно будет раз написать и забыть.
- я не могу ограничивать задачи, я же говорю, если надо закешировать 50 - надо закешировать 50... вы превратить способны в попугая
- фоновый поток отлично! Я подумал вообще про NIO, там как раз нужен фоновый поток. Но у меня его нет! Вообще неотработано решение, и сейчас не время экспериментов. Я могу взять этот поток из того же пула и пусть он у меня будет фоновый. Ну и что мне это даст? Вы в java ee работали? если нет, то я завидую вам.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117269
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
А то, что на окраине происходит, да и фиг с ним порой, хочется просто заткнуть, чтобы работало.
мы в корне отличаемся.
Для вас мусорное ведро за ширмой может быть полным.
Для меня нет.


Вы живете в каком-то удивительном идеальном мире и при этом у вас уйма времени тут отдыхать на форуме, сдается мне вы базработный.

PetroNotC Sharp
Вас просят разбираться в чужом коде. Это обязанность джуна.


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

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

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

стас?
rabiter
вы превратить способны в попугая

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


так а кто говорит, что меня нужно непрменно именно любить? У меня складывается впечатление, что вы отчаянно пытаетесь мне что-то доказать, свое превосходство чтоли? Вы сами понимаете абсурдность ситуации? Мы же взрослые люди, что за нападки.

PetroNotC Sharp
Ферштейн?


их шпрехе кайн дойч

PetroNotC Sharp
Если тебе это не интересно то ты просто ленив.


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

)))) LOL
загрузку отменяем" - это не ограничивать? Или у вас список растёт в геометрической прогрессии?
22404812
Ты стас?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117279
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

rabiter
Вы живете в каком-то удивительном идеальном мире и при этом у вас уйма времени тут отдыхать на форуме, сдается мне вы базработный.

стас?
rabiter
вы превратить способны в попугая

стас?


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

)))) LOL
загрузку отменяем" - это не ограничивать? Или у вас список растёт в геометрической прогрессии?
22404812
Ты стас?


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

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

)))) LOL
загрузку отменяем" - это не ограничивать? Или у вас список растёт в геометрической прогрессии?
22404812


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

с вадей тоже бывате 10 страниц беседуют.
Намёк понятен?
Когда я пойму что ты непробиваем потеряю интерес. Почти понял.


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


Ура, у меня теперь есть слоган, я польщен
доброй ночи

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

приходите. Мы много узнаем как вы выполняете свои обязанности у вас на работе.
"если надо закешировать 50 - надо закешировать 50" (с)
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117293
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter
Да я вообще тут блин раз в пол года бываю

приходите. Мы много узнаем как вы выполняете свои обязанности у вас на работе.
"если надо закешировать 50 - надо закешировать 50" (с)


не забудьте свой колпак
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117299
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming

Это похоже на шедулер OS, тут пока вижу только одно замечание. В ос поток с меньшим приоритетом все равно свой квант получит а тут с priority queue не факт.

1. В ОС тоже не факт. Если очередь сильно забита - ждать можно до бесконечности
2. В ряде ОС, насколько я помню, шедулер выдает ресурсы квантами по 50 ms, т.е. 200 активно работающих потоков x кол-во ядер = любую ОС положат.

lleming

То бишь задачи будут иметь тенденцию заканчивать вместе. Пришел самый первый, ушел со всеми.

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

Петро, завязывайте бесить народ
22399014
и сообщение вам сразу же
22399017

До чего я низко пал 😂 читаю другие посты просто чтобы понять, это я такой чурбан, или Петро)) Вас люди просят - не пишите, проходите мимо, вы шумите
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117309
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
2. В ряде ОС, насколько я помню, шедулер выдает ресурсы квантами по 50 ms, т.е. 200 активно работающих потоков x кол-во ядер = любую ОС положат.
Это уже давно не так.
И типичный квант времени на порядок уменьшился и всяческие priority boost/inversion прикручены куда надо.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117312
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
Нашел с кем быть в компании)))
Первая не знает, и самое главное не хочет знать что текст это биты.
Второй сегодня хочет в рантайме пул настраивать.
Воинствующая безграмотность.
Ну не твое это, обсуждать как лучше сделать.
Пиши строго по ТЗ.
У кодеров с ТЗ нет таких постов длинных 22404147
Максимум написать функцию
list = getDOCname(url)
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117314
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,
И еще одно - невозможно быть java программистом и заходить на форум раз в пол года как вы. Это не шарп. И не дельфи.
Работайте, удачи!
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117324
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Leonid Kudryavtsev
2. В ряде ОС, насколько я помню, шедулер выдает ресурсы квантами по 50 ms, т.е. 200 активно работающих потоков x кол-во ядер = любую ОС положат.
Это уже давно не так.
И типичный квант времени на порядок уменьшился и всяческие priority boost/inversion прикручены куда надо.


Тут дилема. Переключение потоков процессов очень затратная операция и чем больше кэш процессора, тем затратнее и затратнее. Про NUMA архитектуру и Ethernet сети (RSS - receive side scaling) вообще можно не упоминать.

AFAIK OS и Java Runtime писатели уже > 10 лет пытаются что-то придумать, что бы при NUMA накладные расходы понизить, насколько я знаю, ничего не получается. До того не получается, что в Oracle соответствующую опцию как ввели в эксплуатацию, так через пару версий и вывели. В Java лет 5 назад читал отчет соответствующей группы, выводы у них были такие: 1. работа выполнена успешно, но положительный результат не достигнут (алгоритм реализован, но выйгрышь минимальный) 2. нашли багу в команде new, что она некорректно работает в многопоточке ))) там пол статьи было этой баге посвещено, что тип блокировки неправильный использовался )))

Т.ч. IMHO, даже 50 ms для ряда задач может быть крайне долго. Например при сетевом обмене и при неудачном стечении звезд, биндинг к процессорному ядру может задержки по сети в разы (!) улучшить.

Но смысл был в том, что ничего не бывает идеальным. Все равно рано или поздно наступает насыщение очереди, при котором "все встанет колом". Тут только один вариант - прибивать лишнии задачи или выдавать access denied, что бы хоть кто-то обработаться за конечное время смог.

IMHO & AFAIK. Но не думаю, что сильно ошибаюсь
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117325
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, подозреваю, что в задаче автора усматриваю одну фундаментальную ошибку в постановке. Но предметной области не знаю, т.ч. могу и не правильно подозревать.

Не говоря уже о том, что судя по задаче, уже дофига фундаментальных ошибок и велосипедов в архитектуре, которые эта задача и должна подпирать.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117332
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rabiter,
И еще одно - невозможно быть java программистом и заходить на форум раз в пол года как вы. Это не шарп. И не дельфи.
Работайте, удачи!


я очень сожалею, что мне пришлось сцепиться с таким не умными и грубым человеком как вы, это очень неприятно. По вашей логике все программисты должны тут сидеть? У вас времени видимо много свободного? И чем вам не угодил шарп?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117335
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
А вообще, подозреваю, что в задаче автора усматриваю одну фундаментальную ошибку в постановке. Но предметной области не знаю, т.ч. могу и не правильно подозревать.

Не говоря уже о том, что судя по задаче, уже дофига фундаментальных ошибок и велосипедов в архитектуре, которые эта задача и должна подпирать.


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


я очень сожалею, что мне пришлось сцепиться с таким не умными и грубым человеком как вы, это очень неприятно

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

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

решение где?
От того что я сказал прямо в глаза требование закончить топик решением, не означает что я не прав).


ой идите к черту
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117373
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Я удивляюсь как ты не интересуешься задачей предугадать кликанье мышкой на клиенте.
Ведь это голимый hdd kashe.
Требуется предсказать _для загруки_ клики юзверя.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117382
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Переключение потоков процессов очень затратная операция и чем больше кэш процессора, тем затратнее и затратнее.
Вас послушать, так разработчики процессоров и планировщиков - какие-то идиоты, которые не умеют ни в железо, ни в программирование.

P.S.
Если что, то разница во времени обращения в кэш первого уровня и в ОЗУ - порядок-полтора.
По вашей логике - гигабайты и терабайты ОЗУ это дорога в ад и путь в никуда.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117388
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Они не идиоты, просто универсального алгоритма не существует. И по каким параметрам оптимизировать, тоже не понятно. Планировщик, в общем случае, пытается задачи по ядрам размазать; а всякие NUMA оптимизации, RSS и прочие совершенно наоборот, собрать однотипные потоки на одно ядро. А разница в задержках в некоторых случаях может и порядков, а то и нескольких порядков достигать.

AFAIK
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117405
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Я удивляюсь как ты не интересуешься задачей предугадать кликанье мышкой на клиенте.
Ведь это голимый hdd kashe.
Требуется предсказать _для загруки_ клики юзверя.

Извини. А где был вообще инфо-повод упомянуть моё бедное имя?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117420
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ты силен в алгоритмизации.
Вот, сомневаюсь, что такая задача возможна в принципе.
Хотя он и предупредил что маршрут запросов документов предсказуем.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117426
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Планировщик, в общем случае, пытается задачи по ядрам размазать
Ну вот опять ...
Есть у меня книжка, первод которой вышел в 1997 году - "Введение в AS/400".
В одной из глав рассказывается как раз про сродство кэшей (cache affinity) и как это влияет на алгоритм работы планировщика.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117436
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Ты силен в алгоритмизации.
Вот, сомневаюсь, что такая задача возможна в принципе.
Хотя он и предупредил что маршрут запросов документов предсказуем.

Тут 6 страниц какого-то флуда. Нету ни исходников ни задания.

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

Условно, чел ходит по веб страничке. Нужно предугадать по каким ссылкам он кликнет и Заранее в фоне загрузить будущий контент.
Зада бредовая, соглашусь.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117443
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Нужно предугадать по каким ссылкам он кликнет и Заранее в фоне загрузить будущий контент.
Нет такой задачи.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117462
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,

Условно, чел ходит по веб страничке. Нужно предугадать по каким ссылкам он кликнет и Заранее в фоне загрузить будущий контент.
Зада бредовая, соглашусь.

Я могу ошибаться но вроде это было заложено в http2.

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

Условно, чел ходит по веб страничке. Нужно предугадать по каким ссылкам он кликнет и Заранее в фоне загрузить будущий контент.
Зада бредовая, соглашусь.

Я могу ошибаться но вроде это было заложено в http2.

Предварительная загрузка ресурсов.


Если я правильно понял то проблема не в том чтобы клиенту закгрузить. А из медленного хранилища подгрузить в быстрое на определнном триггере и так же при потере актуальности канселить подгурзку и освобождать быстрый кэш.

Кэши процессора тут не причем, тут то ли документы то ли картинки нужно в кэш ложить и убирать.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117478
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой алгоритм кеширования? LRU?

Для веб ресурсов можно поискать 2Q (Two-queue).
Статья на Хабре была на эту тему.
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117479
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёксёль-моксёль ...
Ну почему такое количество писателей опять собралось в одном месте???
Почему нельзя просто п(р)очитать и вообще ничего не пИсАть ?
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117502
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming,
Да. Именно так.
Только попадание в кеш имхо будет низкое.
Это типо таблица маршрутов или матрица маршрутов.
List<url> = getNextUrl(url).
И да, где то было похожее. Браузеры что ли поддерживали предварит загрузку
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117504
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А какой алгоритм кеширования? LRU?
ТС не знает и не хочет знать. Говорил задача другого прогера
...
Рейтинг: 0 / 0
Вопрос по многопоточке
    #40117514
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
А какой алгоритм кеширования? LRU?
ТС не знает и не хочет знать. Говорил задача другого прогера

Я думаю нам стоит подождать реального ТЗ или исходника.
...
Рейтинг: 0 / 0
161 сообщений из 161, показаны все 7 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по многопоточке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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