0

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

  • обычно, когда мне нужно парсить страницы сайта, я использую Parallel.For, внутри которого происходит парсинг i-той страницы, таким образом все страницы парсяться паралельно и удобно. Не могу сравнить эффективность с вашим подходом, но то, что Parallel.For является встроеным решением, даёт основания доверять, что оно достаточно эффективно работает – iikuzmychov Jul 10 '22 at 13:14
  • Ну вот надо выгрузить 2000 записей, и как ? Используя пагинацию с размером страницы 10, сделать 200 потоков ? Думаете это лучше чем 4 параллельных (если 4 ядра) в каждом по 50 – Samson goot Jul 10 '22 at 14:11
  • Environment.ProcessorCount * 2 https://ru.stackoverflow.com/q/1303748/373567 – aepot Jul 10 '22 at 14:51
  • @iiKuzmychov он выполняет каждую итерацию как Task не так, он просто использует пул потоков, вам стоит покопаться в теме поглубже. Task это ожидалка, он сам по себе к многопоточке отношения никакого не имеет. – aepot Jul 10 '22 at 14:54
  • 1
    Мне кажется, вы термин "пагинация" используете не в том смысле, как обычно принято. Пользователь запрашивает, например, 5-ю страницу, на странице 10 записей - он получает только их - это пагинация. При чём здесь многопоточка/распараллеливание совершенно неясно. Может, вам нужно обработать максимально быстро все 2000 записей? Это не пагинация. – Alexander Petrov Jul 10 '22 at 16:03

0 Answers0