လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> asynchronous coroutine လေ့ကျင့်ခန်း

asynchronous coroutine လေ့ကျင့်ခန်း

M66 2025-07-26

asynchronous coroutine နည်းပညာသည်ပုံရိပ် compression နှင့် processing ကိုအရှိန်မြှင့်ရန်ကူညီသည်

မျက်မှောက်ခေတ် web ဖွံ့ဖြိုးတိုးတက်မှုတွင်ပုံချုံ့ခြင်းနှင့်ပြုပြင်ခြင်းသည်စာမျက်နှာ Loading Speed နှင့် User အတွေ့အကြုံတိုးတက်စေရန်အတွက်အရေးကြီးသောလင့်ခ်များဖြစ်သည်။ Image processing သည်များသောအားဖြင့် IO စစ်ဆင်ရေးများနှင့်တွက်ချက်မှုများစွာပါ 0 င်သည်။

ပြတ်တောင်းပြတ်တောင်း coroutines ၏အားသာချက်များကိုခွဲခြမ်းစိတ်ဖြာခြင်း

ပြတ်တောင်းပြတ်တောင်းပြတ်တောင်းပြတ်တောင်းပြတ်တောင်းပြတ်တောင်းပြတ်တောင်းပြတ်သားသောစစ်ဆေးမှုများကိုချမှတ်သောဖြစ်ရပ်မှန်မောင်းနှင်သည့်မော်ဒယ်လ်ကိုကျင့်သုံးသည်။ Synchronous Blocking နှင့်နှိုင်းယှဉ်လျှင် asynchronous corouttines များနှင့်နှိုင်းယှဉ်လျှင်ပုံရိပ်ထုတ်ယူခြင်း၏တစ်ပြိုင်နက်တည်းတုံ့ပြန်မှုမြန်နှုန်းကိုထိထိရောက်ရောက်တိုးတက်စေနိုင်သည်။

ပတ် 0 န်းကျင်ပြင်ဆင်မှုနှင့်မှီခိုမှုတပ်ဆင်ခြင်း

ဤဥပမာသည် Python ကို အခြေခံ. asyncio ကို အသုံးပြု. asynchronous coroutines များကိုအကောင်အထည်ဖော်ရန်နှင့်ရုပ်ပုံပြုပြင်ခြင်းအတွက်ခေါင်းအုံးကိုအသုံးပြုသည်။ installation မှီခို:

 Pip Asyncio ကို Install လုပ်ပါ
Pip install လုပ်ပါ

asynchronous compressed ပုံရိပ်လုပ်ဆောင်ချက်များကိုရေးပါ

 Pil တင်သွင်းပုံရိပ်ကနေ

Async def compress_image (file_path, outpath_path):
    # Open image file image = image.open (file_path)
    # Compression Image အဖြစ်သိမ်းဆည်းပါ, compression parametersions image.save (output_path, အရည်အသွေး = 80, optimization = opt true

ပုံပေါင်းများစွာ၏ပြတ်တောင်းပြတ်တောင်းတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ခြင်းကိုအကောင်အထည်ဖော်ပါ

 asyncio တင်သွင်းပါ

Async def process_images (file_paths):
    အလုပ်များ = []
    file_paths အတွက် file_path များအတွက်:
        # asynchronous task task = asyncio.createe_tasc ကိုဖန်တီးပါ (compress_image (file_path, "output /" + file_path)
        Tasks.append (Task)
    # တစ်ပြိုင်နက်တည်းအလုပ်များအားလုံးကို asyncio.gather (* အလုပ်များ)

အလုပ်များကိုလုပ်ဆောင်ရန် Asnchronous Event Loop တစ်ခုကိုစတင်ပါ

 __name__ == "__main__" ဆိုပါက -
    File_paths = ["image1.jpg", "image2.jpg", "image3.jpg"]
    loop = asyncio.get_event_loop ()
    Loop.run_until_complete (process_images (file_paths))
    loop.close ()

အကျဉ်းချုပ်

Python ၏ Asyncio နှင့်ခေါင်းအုံးစာကြည့်တိုက်များနှင့်ပေါင်းစပ်ခြင်းအားဖြင့်ရှုန ချ. Coroutine Development မှတစ်ဆင့်ဓာတ်ပုံချုံ့ခြင်းနှင့်အပြောင်းအလဲအတွက်ထိရောက်မှုကိုသိသိသာသာတိုးတက်လာနိုင်သည်။ Asynchronous Firectrent processing သည် IO သည်စောင့်ဆိုင်းနေစဉ်တွင်အစီအစဉ်ကိုပိတ်ဆို့ခြင်းမပြုရန်ခွင့်ပြုသည်။ image processing ကိုပိုမိုကောင်းမွန်စေရန်ပြတ်တောင်းပြတ်တောင်း coroutine နည်းပညာကိုနားလည်သဘောပေါက်ရန်နှင့်ကျင့်သုံးရန်ဤဥပမာသည်သင့်အတွက်အထောက်အကူဖြစ်လိမ့်မည်ဟုမျှော်လင့်ပါသည်။

မှတ်ချက် - အထက်ဖော်ပြပါကုဒ်သည်အခြေခံဆန္ဒပြမှုတစ်ခုဖြစ်သည်။