English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

العمليات في Erlang

أدوات الإنترنت

يُنشأ التوازي في Erlang كعملية. العملية هي نشاط/مهمة تُشغل في نفس الوقت مع العمليات الأخرى وتعمل بشكل مستقل عن العمليات الأخرى. هذه العمليات في Erlang تختلف عن العمليات والأنسجة التي يُعتاد عليها معظم الناس. العمليات في Erlang خفيفة الوزن، وتعمل بشكل معزول عن العمليات الأخرى (الذاكرة)، وتُنظم بواسطة محرك التشغيل في Erlang (VM). يُكون إنشاء العمليات بسرعة عالية، ويكون استهلاك الذاكرة للعمليات المُولدة قليلًا جدًا، يمكن تشغيل ملايين العمليات بواسطة محرك التشغيل الواحد في Erlang VM.

النحو

spawn(Module, Name, Args)

المعلمات

  • المodule −هذا هو القيمة الذاتية المُعرفة مسبقًا، ويجب أن يكون ?MODULE.

  • الاسم −هذا هو اسم الدالة التي يجب استدعاؤها لإنشاء العملية.

  • المعلمات −هذه هي المعلمات التي يجب إرسالها إلى الدالة.

القيمة المُرجعة

يُرجع معرف العملية الجديدة المُنشأة.

أظهر البرنامج التالي مثالاً على استخدام spawn.

-module(helloworld). 
-export([start/0, call/2]). 
call(Arg1, Arg2) -> 
   io:format("~p ~p~n", [Arg1, Arg2]). 
start() -> 
   Pid = spawn(?MODULE, call, ["hello", "process"]), 
   io:fwrite("~p",[Pid]).

عن البرنامج المذكور أعلاه، يجب الانتباه إلى النقاط التالية.

  • تم تعريف دالة تُدعى call، والتي ستستخدم لإنشاء العملية.

  • يستخدم أسلوب spawn لندعو وظيفة call باستخدام المعلمات hello و process.

نتيجة الخروج

عندما نقوم بتشغيل البرنامج أعلاه، سنحصل على النتيجة التالية.

<0.29.0>"hello" "process"

الآن، دعونا نرى الميزات الأخرى المتاحة للعمليات.

الترتيبالأسلوب والشرح
1

is_pid

يُستخدم هذا الأسلوب لتحديد ما إذا كان pid موجوداً.

2

is_process_alive

يُدعى is_process_alive(Pid). يجب أن يشير Pid إلى عملية في نفس النقطة.

3

pid_to_list

يحوول pid إلى قائمة.

4

registered

يعود بقائمة تحتوي على أسماء جميع العمليات المسجله.

5

self

من أكثر BIF استخداماً، يعود بـ pid للعمليه الداعيه.

6

register

للإشتراك في عمليه في النظام.

7

whereis

يُدعى whereis (Name). يعود بـ pid للعمليه المسجله باسم هذا الاسم.

8

unregister

لإلغاء تسجيل العمليات في النظام.