Async Await ও Event Loop
⚡ Python Async / Await ও Event Loop (ডিটেইল গাইড)
Python-এ যখন একসাথে অনেক কাজ (যেমন: API call, file read, database query) করতে হয়, তখন Async / Await এবং Event Loop ব্যবহার করে প্রোগ্রামকে অনেক বেশি দ্রুত ও efficient করা যায়।
📌 Async Programming কী?
Async Programming এমন একটি পদ্ধতি যেখানে একটি কাজ চলাকালীন অন্য কাজও একই সময়ে করা যায় — একটি কাজ শেষ হওয়ার জন্য অপেক্ষা না করেই।
🔍 বাস্তব উদাহরণ:
- একসাথে অনেক API call
- একাধিক user request handle করা
- Network বা I/O ভিত্তিক কাজ
📌 Synchronous vs Asynchronous
| Synchronous | Asynchronous |
|---|---|
| এক কাজ শেষ হলে পরের কাজ | একাধিক কাজ একসাথে |
| Slow হতে পারে | Fast ও efficient |
📌 async ও await কী?
async→ একটি asynchronous function তৈরি করেawait→ async কাজ শেষ হওয়া পর্যন্ত অপেক্ষা করে
🧪 Example: async / await
import asyncio
async def task():
print("Task started")
await asyncio.sleep(2)
print("Task finished")
asyncio.run(task())
🖥 Output:
Task started
(2 seconds delay)
Task finished
📌 Event Loop কী?
Event Loop হলো Async প্রোগ্রামিং-এর হৃদয়। এটি একের পর এক task চালায়, pause করে, আবার resume করে।
Event Loop যা করে:
- Async function schedule করে
- await point এ থামায়
- অন্য task চালায়
- আবার আগের task resume করে
📌 Multiple Async Task Example
import asyncio
async def task1():
await asyncio.sleep(2)
print("Task 1 done")
async def task2():
await asyncio.sleep(1)
print("Task 2 done")
async def main():
await asyncio.gather(task1(), task2())
asyncio.run(main())
🖥 Output:
Task 2 done
Task 1 done
👉 লক্ষ্য করুন, Task 2 আগে শেষ হয়েছে কারণ এর delay কম।
📌 Async কোথায় ব্যবহার করবেন?
- API / HTTP request
- Web scraping
- Chat / Real-time app
- Fast backend server (FastAPI)
✨ Summary
- async function asynchronous কাজ করে
- await non-blocking wait তৈরি করে
- Event Loop সব async task manage করে
- Async code fast এবং scalable
✅ এই ধারণাগুলো বুঝলে আপনি Python Backend ও API development-এ অনেক এগিয়ে যাবেন।
লোড হচ্ছে...
1. Async Await কী?
Async Await হলো asynchronous প্রোগ্রামিং এর সিনট্যাক্স, যা non-blocking কোড লিখতে সাহায্য করে।
2. Event Loop কীভাবে কাজ করে?
Event Loop asynchronous টাস্কগুলোকে পরিচালনা করে এবং I/O অপারেশন শেষ হলে callback বা coroutine এক্সিকিউট করে।
3. Async programming কোথায় বেশি উপযোগী?
Network request, API call, database query এর মতো I/O-bound কাজের জন্য Async programming উপযোগী।