данном случае спокойно можно применить Task.async_stream вместо async+wait
3. Так ли нужен flag? В целом, вызывающий функцию может сделать это на своей стороне, а если ему эти вдруг будет не нужно - код прохода по всему списку будет выполняться _всегда_. Константа, но все таки.
Ну и правила хорошего тона
1. threads бы лучше вынести в последнюю переменную opts, из которой потом при помощи Keyword вытаскивать нужные опции и в случае чего фолбэчится на дефолт
2. Если количество возвращаемых значений - небольшое, то возможно имеет смысл использовать tuple вида {list, flag}
Ну и советовал бы протестировать пользу распараллеливания сортировки: из-за иммутабельности и необходимости потом списки конкатенировать (O(N)), не факт, что что-то выиграем
Спасибо. Насчёт пользы не спорю, скорее всего выигрыша в производительности не будет. Я этот кейс чисто в качестве учебного рассматриваю, чтобы с распараллеливанием разобраться.
Обсуждают сегодня