Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
Перед вами, наверное, самая реалистичная на данный момент цифровая модель человека.
Сделано в Metahuman (Unreal Engine 5) на iPhone с захватом лица и RTX 4090.
Мы всё ближе к тому, когда графика станет неотличимой от реальности
r/#unrealengine
Наши технические художники создают 3D-аватары в MetaHuman Creator. Недавно вышла новая версия MetaHuman 🔥 с упрощенным обменом данных и калибровкой ДНК.
Теперь есть возможность записи данных в виде бинарного файла, которым с легкостью можно поделиться с коллегами, а они уже из этого файла откроют полную модель, загрузив в MetaHuman Creator.
Также появился доступ к библиотеке калибровки ДНК MetaHuman. Это позволяет переносить МетаХьюмана в другие 3D-пакеты без костылей - дают возможность открытой настройки меша, поз и BlendShapes в стороннем софте.
Выглядит, как очень удобные и полезные фичи для команды 🧡 Мы с удовольствуем применяем их в создании новых проектов!
Полная статья по ссылке👉🏻https://www.unrealengine.com/en-US/blog/new-metahuman-release-brings-easier-sharing-and-dna-calibration
#digitalnews#brothersproduction#unrealengine#metahuman
We are super happy to announce that #Cryowar is releasing Technical Beta Version 1.0. 250 fellow #Cryowarriors from our #BestCommunityEver will have initial access to review our amazing #UnrealEngine designs and mechanics. Stay tuned for further information next week! $CWAR #Moon