English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
أدوات الإنترنت
يُنشأ التوازي في 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 | يُستخدم هذا الأسلوب لتحديد ما إذا كان pid موجوداً. |
2 | يُدعى is_process_alive(Pid). يجب أن يشير Pid إلى عملية في نفس النقطة. |
3 | يحوول pid إلى قائمة. |
4 | يعود بقائمة تحتوي على أسماء جميع العمليات المسجله. |
5 | من أكثر BIF استخداماً، يعود بـ pid للعمليه الداعيه. |
6 | للإشتراك في عمليه في النظام. |
7 | يُدعى whereis (Name). يعود بـ pid للعمليه المسجله باسم هذا الاسم. |
8 | لإلغاء تسجيل العمليات في النظام. |