ثريد عن التزامن Asynchronous في البرمجة
1- ماهو التزامن ؟
هو مجموعة من الأحداث تبدأ معاً في نفس الوقت .
2- ماهو عيب التزامن
أ-يؤثر بشكل سيء على البرنامج الذي يستخدم برمجة تقليدية
التي تتبع النظام التقليدي وهو تنفيذ الأوامر بشكل متسلسل
ب- يؤثر التزامن على كفاءة النظام
1- ماهو التزامن ؟
هو مجموعة من الأحداث تبدأ معاً في نفس الوقت .
2- ماهو عيب التزامن
أ-يؤثر بشكل سيء على البرنامج الذي يستخدم برمجة تقليدية
التي تتبع النظام التقليدي وهو تنفيذ الأوامر بشكل متسلسل
ب- يؤثر التزامن على كفاءة النظام
ماهو الحل لمشكلة التزامن Synchronous
كما ذكرنا انه عند بناء دالة بالشكل التقليدي فإن هذه الدالة ستكون افتراضياً متزامنة وهذا يمثل تجربة سيئة لدى المستخدم والذي يؤدي الى بطء البرنامج في كثير من الاحيان
والحل هو اتباع نهج غير متزامن An asynchronous
كما ذكرنا انه عند بناء دالة بالشكل التقليدي فإن هذه الدالة ستكون افتراضياً متزامنة وهذا يمثل تجربة سيئة لدى المستخدم والذي يؤدي الى بطء البرنامج في كثير من الاحيان
والحل هو اتباع نهج غير متزامن An asynchronous
بشكل عام تكون البرمجة الغير متزامة منطقية في حالتين
1- إذا كان لديك تطبيقاً يحتوي على الكثير من العمليات والخيارات من جانب المستخدم
2- إذا كان لديك عمليات معقدة مثل ارسال بيانات وانتظار الرد كما هو الحال في API
1- إذا كان لديك تطبيقاً يحتوي على الكثير من العمليات والخيارات من جانب المستخدم
2- إذا كان لديك عمليات معقدة مثل ارسال بيانات وانتظار الرد كما هو الحال في API
إحدى النتائج الإيجابية للبرمجة الغير المتزامنة على سبيل المثال في البرمجة التقليدية يقوم المبرمج بكتابة سلسلة من الاوامر تخيل مثلاً انك تريد استدعاء دالتين بشكل متسلسل
ولنفترض أيضاً أن الدالة الاولى بطيئة في التنفيذ وتستغرق زمناً معيناً مما يؤخر استدعاء الدالة الثانية يتبع
ولنفترض أيضاً أن الدالة الاولى بطيئة في التنفيذ وتستغرق زمناً معيناً مما يؤخر استدعاء الدالة الثانية يتبع
بالرغم ان الدالة الثانية غير مرتبطة بالدالة الثانية
ولا تعتمد عليها هنا يكون النمط الغير متزامن مفيد جداً بحيث يمكننا استدعاء الدالة الثانية قبل ان يكتمل عمل الدالة الأولى
والعكس أيضاً موجود في النمط الغير متزامن يمكنك تأخير استدعاء دالة حتى يتنهي عمل الدالة الاولى
ولا تعتمد عليها هنا يكون النمط الغير متزامن مفيد جداً بحيث يمكننا استدعاء الدالة الثانية قبل ان يكتمل عمل الدالة الأولى
والعكس أيضاً موجود في النمط الغير متزامن يمكنك تأخير استدعاء دالة حتى يتنهي عمل الدالة الاولى
توفر Microsoft .NET Framework 4.0
مكتبة موازية مهمة جديدة (TPL) للحوسبة المتوازية والبرمجة غير المتزامنة. مساحة الاسم هي "System.Threading.Tasks
وتوفر هذه المكتبة الكلمة المحجوزة TASK عند الرغبة في بناء اسطر برمجية تقوم بتطبيق النمط الغير متزامن وكمثال بسيط سيكون شكل الاسطر يتبع
مكتبة موازية مهمة جديدة (TPL) للحوسبة المتوازية والبرمجة غير المتزامنة. مساحة الاسم هي "System.Threading.Tasks
وتوفر هذه المكتبة الكلمة المحجوزة TASK عند الرغبة في بناء اسطر برمجية تقوم بتطبيق النمط الغير متزامن وكمثال بسيط سيكون شكل الاسطر يتبع
TASK<int>t=new Task<int>(() =>
{
return calc(10);
});
في المثال المكتوب بلغة c# تم انشاء كائن اسمه t يمثل النمط الغير متزامن يقوم باستدعاء دالة اسمها calc
ويمكنك أيضاً استخدام الكلاس start للبدء في تنفيذ اللاتزامن يتبع
{
return calc(10);
});
في المثال المكتوب بلغة c# تم انشاء كائن اسمه t يمثل النمط الغير متزامن يقوم باستدعاء دالة اسمها calc
ويمكنك أيضاً استخدام الكلاس start للبدء في تنفيذ اللاتزامن يتبع
يمكنك استخدام الوظيفة start من الكائن t للبدء في عملية اللاتزامن بالشكل التالي
t.start();
ويمكنك أيضاً تأخير عملية التنفيذ باستخدام الكلمة المحجوزة TASK بالشكل التالي
TASK.waitALL(t);
t.start();
ويمكنك أيضاً تأخير عملية التنفيذ باستخدام الكلمة المحجوزة TASK بالشكل التالي
TASK.waitALL(t);
جاري تحميل الاقتراحات...