Три способа выполнить множество задач с 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
A study of 1,160 men found that nose size can predict penis size. Larger noses were linked to longer penises. Penis length was also related to lower BMI. Penis circumference was linked to body weight and testicle size. Height, weight, foot size, and testosterone were measured, but nose size and BMI were key for length.
This study supports the old myth about nose and penis size.
👃📏🍌🤏
[Read more]
@googlefactss#Science#BodyFacts#MythConfirmed
The lunula is the white, crescent-shaped part at the base of your fingernail. It shows where new nail cells grow.
💅🌙
@googlefactss
#Lunula#Nails#BodyFacts
The glabella is the smooth area of skin between your eyebrows and above your nose. It helps show facial expressions like frowning.
👁️🗨️🙂
@googlefactss
#Glabella#Face#BodyFacts
The axilla is the medical term for your armpit—the area under your shoulder where your arm connects to your body. It contains lymph nodes, sweat glands, and important blood vessels and nerves.
🦴💪
@googlefactss
#Axilla#Armpit#BodyFacts
The canthus is the corner where your upper and lower eyelids meet, near your eye's edge. It helps protect your eyes and drain tears.
👁️💧
[Read more]
@googlefactss
#Canthus#Eye#BodyFacts
Double body fact today:
●The gnathion is the lowest point on the front of your chin, right in the middle. It’s often used as a reference point in anatomy and facial measurements.
●The zygion is the most lateral point of the zygomatic arch (cheekbone) on your face. It’s often used in anthropology and facial measurements to assess facial width.
😊📏
[Source picture]
@googlefactss
#Zygion#FacialAnatomy#Anthropology
#Gnathion#Chin#BodyFacts