пробежаться по всем элементам и с каждым произвести некоторые вычисления
Я хочу эти вычисления проводить в отдельных потоках
Очевидно что для каждого элемента листа создавать отдельный поток глупо и нужно просто раздробить этот лист на листы поменьше
Но по сколько их дробить? По 200 элементов? по 500?
Так вот вопрос: как узнать оптимальный сайз подлистов для разбиения по потокам?
Или может у этой проблемы есть название чтоб я мог погуглить?
Спасибо
Сайз листа / потоки ?
сайз подлистов
параллелизм с ограниченным кол-вом исполнителей афаик thread pool,
вот нарыл из шилдта пример кода, если задача рекурсивная. https://pastebin.com/A9N2s3Gz
можна подставлять разные seqThresHold, но лучше не устанавливать слишком маленькое значение.
дели на 2 (бинарные вычисления)
Кстати да, погугли параллельные стримы, там количество потоков даже автоматом выставляется под процессор и т.п.
о, спасибо, че-то забыл за них совсем)
Только внимание большое удели на исключения в этих потоках, это критическая секция.
Обсуждают сегодня