الفصل 12: البرمجة غير المتزامنة
ما ستتعلم في هذا الفصل
- مفهوم البرمجة غير المتزامنة
غير_متزامنوانتظر- تنفيذ عمليات متوازية
- التعامل مع أخطاء العمليات غير المتزامنة
12.1 لماذا البرمجة غير المتزامنة؟
عند تنفيذ عملية بطيئة (قراءة ملف، طلب شبكة)، لا نريد أن يتوقف البرنامج بالكامل. البرمجة غير المتزامنة تسمح بتنفيذ عمليات أخرى أثناء الانتظار.
12.2 غير_متزامن / انتظر
sad
غير_متزامن دالة جلب_بيانات(رابط)
اطبع_سطر("جارٍ الجلب من: " + رابط)
متغير الرد = انتظر طلب_http(رابط)
ارجع الرد
نهاية
غير_متزامن دالة رئيسية()
متغير بيانات = انتظر جلب_بيانات("https://api.example.com/users")
اطبع_سطر("تم الجلب: " + بيانات)
نهاية
رئيسية()12.3 تنفيذ عمليات متعددة
sad
غير_متزامن دالة مهمة(اسم، مدة)
اطبع_سطر("بدء: " + اسم)
# محاكاة عملية بطيئة
انتظر تأخير(مدة)
اطبع_سطر("انتهاء: " + اسم)
ارجع اسم + " — مكتمل"
نهاية
غير_متزامن دالة رئيسية()
# تشغيل عمليات متوازية
متغير نتيجة1 = مهمة("تحميل صورة"، 2000)
متغير نتيجة2 = مهمة("جلب بيانات"، 1500)
اطبع_سطر(انتظر نتيجة1)
اطبع_سطر(انتظر نتيجة2)
نهاية12.4 معالجة أخطاء غير متزامنة
sad
غير_متزامن دالة جلب_آمن(رابط)
حاول
متغير الرد = انتظر طلب_http(رابط)
ارجع الرد
امسك (خطأ)
اطبع_سطر("❌ فشل الجلب: " + خطأ)
ارجع لاشيء
نهاية
نهايةتمارين
تمرين 1: جلب متعدد
اكتب دالة تجلب بيانات من 3 روابط مختلفة بالتوازي.