สงสัยผลของโปรแกรม AsyncIO & Async / Await ของ Python3

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

annie2301
PHP Super Member
PHP Super Member
โพสต์: 289
ลงทะเบียนเมื่อ: 01/12/2021 9:44 am

สงสัยผลของโปรแกรม AsyncIO & Async / Await ของ Python3

โพสต์ที่ยังไม่ได้อ่าน โดย annie2301 »

ในโค้ด function จะ async ทุก function
  • function fetch_data จะ print string ออกมา และระหว่าง print จะมี sleep 2 วินาที
  • function print_numbers จะ print ตัวเลข 1-10 และระหว่าง print จะมี sleep 0.5 วินาที
  • function main จะเรียกใช้ fetch_data และ print_numbers
  • บรรทัดสุดท้ายเรียกใช้ function main

โค้ด: เลือกทั้งหมด

import asyncio

async def fetch_data():
    print('start fetching')
    await asyncio.sleep(2)
    print('done fetching')
    return {'data': 1}

async def print_numbers():
    for i in range(10):
        print(i)
        await asyncio.sleep(0.5)

async def main():
    task2 = asyncio.create_task(print_numbers())
    await fetch_data()
    await task2

asyncio.run(main())
ผลลัพธ์ของโปรแกรม
ทำไม print_numbers() ถึง print แทรก fetch_data() ทั้งๆที่ fetch_data() ยังทำงานไม่เสร็จ
C++ & java & Python-1.png
C++ & java & Python-1.png (6.75 KiB) Viewed 1083 times
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 98