سؤال

وكيف يمكنني استخدام المواضيع في Ada95؟ ما هي الوظائف التي يمكنني استخدامها لخلق أو تدمير أو التوقف والبدء بها؟

وكيف يمكن استخدام الإشارات في هذه اللغة؟

هل كانت مفيدة؟

المحلول

والمصطلحات أدا للموضوع هو "مهمة". ادا لم يكن لديك الإشارات (على هذا النحو) بنيت مباشرة إلى اللغة، ولكن غوغلينغ لشيء من هذا القبيل "آدا إشارة" يجب أن يحضر عدد لا بأس به من الزيارات. AdaPower.com ، على وجه الخصوص، لا بأس قليلا عن البرمجة المتزامنة في ادا (و، لهذه المسألة، تقريبا جميع أنواع البرمجة في آدا).

نصائح أخرى

وبنيت التزامن في اللغة، ولذلك عليك تركيب معين أدا للمهام (أي موضوع) والأعيان المحمية (أي التي هي أقوى من الإشارات / كائنات المزامنة / المتغيرات المشروطة). هذا يجعل من الاسهل بكثير (وأقل عرضة للخطأ) برمجة التطبيقات متعددة الخيوط في ادا مما كان عليه في لغات أخرى مثل C / جافا.

وانها ليست أوصى الإشارات استخدامها في آدا، الأعيان المحمية هي أقوى بكثير (ولكن يمكنك بناء الإشارات بسهولة باستخدام كائنات محمية إذا لزم الأمر).

وفيما يلي بعض الأمثلة جملة صغيرة. المهام (والأعيان المحمية) يمكن أن يكون ثابت ...

task My_Task;

task body My_Task is
begin
   -- Just print this to stdout and exit thread
   Ada.Text_IO.Put_Line("Hello, concurrent World!");
end;

... أو إنشاؤه بشكل حيوي

task type My_Task_Type(N : Natural);

task body My_Task_Type(N : Natural) is ...

...

T1 := new My_Task_Type(100);

abort T1;

ومطول أقل بكثير من لغات أخرى (وأكثر maintenable)! انظر "الجديد"، و "إحباط" الكلمات الرئيسية لإدارة المهام الحيوية، فضلا عن غيرها من حزم المتخصصة مثل Ada.Synchronous_Task_Control.

وأعمدة الإشارة يجب أن تكون 'بناء' (بدلا من ذلك، العرف) وعادة ما تستخدم 2 (ملفات ملحقات .adb و.ads)، الإشارات متطورة قد تحتاج 3 ملفات (انظر "بالتزامن والبرمجة في الوقت الحقيقي في ادا" آلان بيرنز وأندي ويلينغز). لا توجد المواضيع، ولكن المهام بدلا في ادا.

لتزامن في ادا باستخدام الإشارات، قد ترى مقالا عن بلدي بلوغسبوت! http://3chevrons.blogspot.com/2010/02/semaphores- في وada.html

وأحصل على الشعور الذي تحاول ربط آدا إلى التزامن في C و / أو المواضيع في بيثون. ومع ذلك، آدا تناشد مختلفة إلى حد ما.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top