powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как реализовать такую идею ? Есть ли готовые решения ?
19 сообщений из 44, страница 2 из 2
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793771
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123WaspNewCoreобщий пул потоковон общий вроде на процесс

Вот именно. Он общий на весь процесс. Поэтому если нам нужно, чтобы Service1 мог породить только 3 одновременно работающих таска, а Service2 - 5, то и начнется проблема. Которую я и думаю как решать.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793773
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vb_subWaspNewCore, зачем ограничивать общее количество работающих задач?

Да просто, чтобы не завалить сторонний сервис, к которому обращение идет через HttpClient, потоком запросов. Ну и вообще, нужна возможность конфигурировать нагрузку. Например, чтобы уменьшить нагрузку на базу.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793777
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreДа просто, чтобы не завалить сторонний сервис,смешно.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793783
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreНапример, чтобы уменьшить нагрузку на базу.еще смешнее.
maxPoolThread =2 и будет 2 запроса на всю базу.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793785
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreесли нам нужно, чтобы Service1 мог породить только 3 одновременно работающих таска, а Service2 - 5, тозачем 2 сервиса? Ты сам себе придумал задачу.
Типо есть один цикл for выбирающий очередь. Тебе захотелось два цикла for вызывающих один метод Run()
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793817
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Какие 2 ? Насколько я помню формула "количество процессов*2". С учетом гипертрединга 4х ядерный процесс даст 16 потоков.
Вот эти 16 потоков нужно распределить между несколькими классами-сервисами. Этому 3, другому 5.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793825
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123WaspNewCoreесли нам нужно, чтобы Service1 мог породить только 3 одновременно работающих таска, а Service2 - 5, тозачем 2 сервиса? Ты сам себе придумал задачу.
Типо есть один цикл for выбирающий очередь. Тебе захотелось два цикла for вызывающих один метод Run()

Каждый сервис обрабатывает данные по своей специфике. Это отдельные классы, в которых совершенно своя логика, и она может быть очень отличной.
Вся суть задачи - это сделать такой обработчик задач. Его будем расширять классами обработчиками. Их там уже штук 6 набирается. Но они не все одновременно будут работать. Вот я и думаю как это все реализовать.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793826
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WaspNewCorePetro123,

Какие 2 ? Насколько я помню формула "количество процессов*2". С учетом гипертрединга 4х ядерный процесс даст 16 потоков.
Вот эти 16 потоков нужно распределить между несколькими классами-сервисами. Этому 3, другому 5.

Количество Процессоров имелось ввиду. На сервере там может и больше вообще процессоров.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793838
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCorePetro123,

Какие 2 ? Насколько я помню формула "количество процессов*2". С учетом гипертрединга 4х ядерный процесс даст 16 потоков.
Вот эти 16 потоков нужно распределить между несколькими классами-сервисами. Этому 3, другому 5.
Нет. По умолчанию у меня 10 что ли потоков. Но механизм этот зависит не просто от ядер. В него просто не нажо лезть.
Зачем распределять? Распил бабла? Если доводов нет.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793842
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreЕго будем расширять классами обработчиками.выше я 3 метода написал. Внутри них нельзя расширить бизнес логику?
Сервис это запускалка. А логика в классе MyЛогика.Run();
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793846
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreС учетом гипертрединга 4х ядерный процесс даст 16 потоков.
Вот эти 16 потоков нужно распределить между несколькими классами-сервисами. Этому 3, другому 5.ты 16-тью потоками запросами боишься веб сервис положить? Ну смешно же.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793854
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

дело еще не в столько, чтобы не положить, но и в том, чтобы они между собой не конкурировали за потоки. Чтобы не стартануло 16 длительных задач, не дающих работать быстрым. Поэтому и нужно распределение пула потоков между ними.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793855
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123WaspNewCoreЕго будем расширять классами обработчиками.выше я 3 метода написал. Внутри них нельзя расширить бизнес логику?
Сервис это запускалка. А логика в классе MyЛогика.Run();

ну вот нужно еще, чтобы они после своей работы семафор отпускали. плюс учитывать вероятность ошибок - падений. Чтобы при этом тоже семафор почистился.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793857
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreмежду собой не конкурировали за потоки.кто они?
Поток изолирован или выше писал что поток это задача.
Где конкуренция?
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793860
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreсемафорсемафор не бывает без общего разделяемого ресурса. А его нет. Задачи параллельные. Смотри код.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793861
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreплюс учитывать вероятность ошибок - паденийtry при async работает. Попробуй)
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793864
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCore,
Есть анекдот, когда мужик в поезде очищал банан, потом солил, и выбрасывал в окно. На вопрос зачем? Он отвечал что не любит соленые бананы.
Так и ты ввел семафор и спрашиваешь как с ним тут работать.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793868
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКласс System.Threading.ThreadPool обеспечивает приложение пулом рабочих потоков, управляемых системой, позволяя пользователю сосредоточиться на выполнении задач приложения, а не на управлении потоками.
...
Рейтинг: 0 / 0
Как реализовать такую идею ? Есть ли готовые решения ?
    #39793869
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЧисло операций, которое можно поставить в очередь в пуле потоков, ограничено только доступной памятью. Однако пул потоков имеет ограничение на число потоков, которое можно активировать в процессе одновременно. Если все потоки в пуле заняты, дополнительные рабочие элементы помещаются в очередь и ожидают их освобождения. Начиная с .NET Framework 4, размер пула потоков по умолчанию для какого-либо процесса зависит от нескольких факторов, таких как размер виртуального адресного пространства. Процесс может вызвать метод ThreadPool.GetMaxThreads для определения количества потоков.
Вы можете управлять максимальным количеством потоков с помощью методов ThreadPool.GetMaxThreads и ThreadPool.SetMaxThreads.я MS верю))
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как реализовать такую идею ? Есть ли готовые решения ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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