Skip to content

Concurrency and async / await

  • Asynchronous(async) - Asinxron(parallel dasturlash)
  • Aynchronous(sync) - Sinxron

Sinxron dasturlash

Sinxron dastur bir vaqtning o'zida bitta vazifa bajaradi ya'ni bir jarayon yakunlanganidan so'ng keyingi jarayon ishga tushadi. Ko'pchilik dasturlar sinxron dasturlash bilan yoziladi. Bunday dasturlar foydalanuvchidan vazifani olib qayta ishlab so'ng natijani qaytaradi. Misol tariqasida biror tizimdan ro'yxatdan o'tishni olaylik. Bu tizimdan ro'yxatdan o'tish uchun login, parol, manzil va rasm kiritishimiz kerak bo'lsin. Foydalanuvchi ma'lumotlarni kiritganidan so'ng dastur kiritilgan ma'lumotlarni, ma'lumotlar omboriga yozish jarayonida rasm o'lchamini ham o'zgartirishi kerak. Agar rasmsiz ro'yxatdan o'tqazsak bizga 0.0003s vaqt ketadi agar rasm bilan ishlasak 0.5s vaqt kerak bo'ladi. Chunki rasmni qayta ishlash biroz vaqt talab qiladi. Bu kichik vaqt bo'lshi mumkin lekin bir vaqtda ko'proq so'rov kelsa bu vaqt oshib ketishi mumkin.

Xo'sh bu qism qanday ishlaydi?

  1. Ma'lumot kiritiladi
  2. Dastur qabul qiladi
  3. Qayta ishlash jarayoni(rasmni qayta ishlash)
  4. Foydalanuvchi kutyapdi
  5. Ish yakunlandi(rasmni qayta ishlash)
  6. Natija yuborildi

Misol uchun 0.5s vaqt sarflandi.

Sinxron dasturlash boshqa jarayonlarga bog'liq bo'lganligi uchun biroz vaqtdan yutqazib qo'yadi. Lekin sinxron dasturlash bilan ham ancha ishlar qilish mumkin bu degani sinxron dasturlash yomon degani emas har bir usulni o'z o'rni bor. Shunday holatlar bor, bu holatlarda sinxron dasturlash dan foydalanish shart bo'ladi chunki ikki yoki undan ortiq jarayonlar bir biriga bog'liq bo'ladi.

Asinxron dasturlash

Dastur ishlashi foydalanuvchi so’rovlarini qayta ishlash, ma’lumotlar bazalariga va tarmoq resurlariga kirish kabi nisbatan ko’proq vaqt talab etiladigan vazifalardan iborat bo’lganda, asosiy oqimni bloklab qo’ymaslik uchun asinxron usullardan foydalaniladi. Asinxron dasturlashni bir-biriga bo'g'liq bo'lmagan jarayonlarni mustaqil navbatsiz ishlashini tushunish mumkin. Yuqorida sinxron dasturlash haqida qisqacha tushunchaga ega bo'ldik asinxron dasturlash shu jarayonni teskarisi bo'ladi. Yuqorida misol tariqasida olgan ro'yxatdan o'tish tizimida asinxron dasturlashdan foydalanganimizda jarayon quyidagicha bo'ladi.

  1. Ma'lumot kiritiladi
  2. Dastur qabul qiladi
  3. Qayta ishlash jarayoni
  4. Natija yuborildi
  5. Ish yakunlandi(rasmni qayta ishlash).

Xo'sh bu yerda nima bo'ldi? Nega qayta ishlash o'z-o'zidan oxirgi o'ringa tushib qoldi? Asinxron dasturlash shu ko'rinishda ishlaydi :). Rasmni qayta ishlash qismiga kelganida, shu qismga javobgar funksiya boshqa jarayonlarni kutmasdan orqa qismda(background) rasmni qayta ishlash jarayonini boshlaydi. Bu holatda foydalanuvchi uchun muhim bo'lmagan bu qism natijasi kutilmaydi va foydalanuvchiga ro'yxatdan o'tgani haqidagi xabar yuboriladi. Menimcha oz bo'lsada tushunchaga ega bo'ldik endi texnik mavzularga o'tsak bo'ladi.

Info

Asinxron dasturlashdan bir-biriga bo'g'liq bo'lmagan ya'ni bir metodni natijasini ikkinchi kutmayotgan holatlarda ishlatish zarur.

await

Xulosa