كيف تصنع خيط في جافا؟ | تعدد في جافا
نشرت: 2020-12-29في هذه المقالة ، سوف نلقي نظرة على خيوط المعالجة في Java واستكشاف الآليات التي تجعل الترابط ممكنًا.
جدول المحتويات
خيوط في جافا
تعد ميزة الترابط في Java عملية فرعية خفيفة الوزن. تعتبر أصغر وحدة معالجة. إنها وسيلة لتحقيق تعدد المهام في البرنامج. إنها ميزة مفيدة عندما يتعلق الأمر بالألعاب والرسوم المتحركة وما إلى ذلك.
تحتوي Java على دعم مدمج لإنشاء مؤشرات ترابط ومتعددة. يعد هذا أسلوبًا ذكيًا لتقليل أوجه القصور والسحب من خلال الاستخدام الأمثل لمساحة وحدة المعالجة المركزية. في Java ، يمكن القيام بذلك بطريقتين:
- تمديد فئة الموضوع ، أو
- تنفيذ واجهة التشغيل
عندما يتم تنفيذ أكثر من مؤشر ترابط واحد في وقت واحد ، يطلق عليه تعدد مؤشرات الترابط. يسمح هذا بشكل أساسي لأجزاء متعددة من البرنامج بالعمل بشكل متزامن ، كل جزء من الخيط وكل مؤشر ترابط يتبع مسارًا مميزًا للتنفيذ.
الخيوط تستخدم مساحة الذاكرة المشتركة ؛ لا يتم تخصيص الذاكرة لكل جزء ، مما يؤدي إلى أقصى استخدام لوحدة المعالجة المركزية. علاوة على ذلك ، فإن تغيير السياقات لا يستغرق الكثير من الوقت. ومع ذلك ، قد يؤدي عدد كبير جدًا من سلاسل الرسائل إلى إشراك وحدة المعالجة المركزية الخاصة بك في تبديل السياق وقد يتأخر تنفيذك.
يمكن أن يكون الخيط موجودًا في إحدى الدول الست التالية
- جديد - بمجرد إنشاء الخيط ، فإنه يوجد في الحالة الجديدة. هذا يعني بشكل أساسي أن الخيط لم يبدأ التنفيذ بعد.
- قيد التشغيل - عندما يتم تنفيذ مؤشر ترابط أو يكون في خط ليتم تنفيذه ، يكون في حالة التشغيل.
- الانتظار - يتم أحيانًا إيقاف أو تعليق سلسلة رسائل قيد التشغيل للسماح بحدوث نشاط آخر. يمكن لنسخة غير مهلة من الانتظار () أو الانضمام () تعليق سلسلة من التنفيذ. بمجرد حدوث الإجراء ، يتم استئناف سلسلة الرسائل المعلقة.
- TIMED-WAITING - أحيانًا يتم إيقاف أو تعليق سلسلة رسائل قيد التشغيل مؤقتًا لمدة محددة. على سبيل المثال ، عندما تسمى وظيفة النوم ().
- محظور - عندما يتعذر على مؤشر ترابط Java المعلق الحصول على مورد معين ، يتم حظره ويوجد في حالة الحظر.
- تم إنهاؤه - عند اكتمال تنفيذ سلسلة الرسائل ، تكون موجودة في حالة الإنهاء. ومع ذلك ، يمكنك إنهاء سلسلة رسائل في أي وقت.
تعرف على المزيد حول هندسة ومكونات Java.

فوائد إنشاء موضوع في Java
هناك العديد من المزايا لإنشاء المواضيع. بعض هؤلاء
- نظرًا لأن الخيوط مستقلة ، فإن تنفيذًا واحدًا لا يؤثر على الآخر حتى عندما يعمل على مساحة الذاكرة المشتركة. هذا يعني أيضًا أنه يمكنك إجراء أكثر من عملية في وقت واحد.
- الخيوط هي شكل من أشكال تعدد المهام وتوفر الوقت.
- خطأ في أحد سلاسل الرسائل لا يؤثر على آخر.
كيفية إنشاء موضوع في جافا؟
كما تمت مناقشته أعلاه ، هناك طريقتان للقيام بذلك: توسيع فئة الموضوع ، أو تنفيذ واجهة التشغيل
فئة الموضوع
توجد أدوات إنشاء وطرق في فئة Thread تتيح لك إجراء العمليات وإدارة سلاسل الرسائل وتتبعها. إنه يوسع فئة الكائن التي تقوم بعد ذلك بتنفيذ الواجهة المصاحبة Runnable. المُنشئات الموجودة في فئة مؤشر الترابط هي: Thread () ، Thread (اسم السلسلة) ، Thread (Runnable r) ، و Thread (Runnable r ، اسم السلسلة).

فيما يلي الطرق وأوصافها
| طريقة | ما الذي تستخدمه؟ |
| بداية() | يبدأ التنفيذ |
| يركض() | لتشغيل إجراء لموضوع |
| ينام() | يضع خيطًا للنوم لمدة معينة |
| انضم() | انتظر حتى يتم إنهاء موضوع آخر |
| getPriority () | للدلالة على أولوية موضوع معين |
| يضع أولويات() | لتغيير أولوية موضوع معين |
| getName () | لإرجاع اسم موضوع محدد |
| اسم مجموعة() | لتغيير اسم الموضوع المحدد |
| getId () | لإرجاع معرف موضوع معين |
| حي() | لاختبار ما إذا كان الموضوع لا يزال موجودًا في أي دولة |
| أثمر() | يوقف تنفيذ كائن مؤشر الترابط مؤقتًا للسماح بتشغيل مؤشر ترابط (خيوط) أخرى |
| تعليق() | لتعليق موضوع معين |
| سيرة ذاتية() | لاستئناف موضوع من حالة التعليق |
| قف() | لوقف موضوع معين |
| هدم() | لتدمير مجموعة الموضوع والمجموعات الفرعية |
| مقاطعة () | لإحداث انقطاع في تنفيذ الخيط |
| متقطع () | لاختبار ما إذا كان تنفيذ مؤشر ترابط معين قد تمت مقاطعته |
| توقف () | لاختبار ما إذا كان تنفيذ مؤشر الترابط الحالي قد تمت مقاطعته |
| activeCount () | لإرجاع coun من المواضيع النشطة في مجموعة الموضوع |
| HoldLock () | يعود صحيحًا إذا وفقط إذا كان مؤشر الترابط الحالي يحمل قفل الشاشة على الكائن المحدد. |
| getState () | لتحديد حالة موضوع معين |
| setContextClassLoader () | لتعيين سياق ClassLoader |
| getContextClassLoader () | لإرجاع سياق ClassLoader |
من أجل إنشاء سلسلة رسائل عن طريق توسيع فئة الموضوع ، يجب أولاً إنشاء فئة لتمديد فئة java.lang.Thread. يتم تعريف هذه الفئة لتجاوز طريقة run (). بعد ذلك ، يتم إنشاء كائن في الفئة الجديدة التي تليها باستدعاء طريقة start () لبدء تنفيذ مؤشر الترابط.
يجب أن تقرأ: برامج النمط في Java يجب عليك الخروج
واجهة قابلة للتشغيل
هذه هي أسهل طريقة لإنشاء موضوع. مطلوب طريقة واحدة فقط لتنفيذ واجهة التشغيل: runnable ()
لكي نعلن ذلك ، نكتب
تشغيل الفراغ العام ()

داخل run () ، ننتقل إلى كتابة الكود لإنشاء مؤشر ترابط جديد.
قم بالتسجيل في دورات هندسة البرمجيات من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.
فئة الخيط مقابل الواجهة القابلة للتشغيل
فئة الموضوع تمنعك من توسيع أي فئة أخرى. هذا لأن الوراثة المتعددة غير ممكنة في Java. ومع ذلك ، ليس هذا هو الحال عندما نطبق واجهة Runnable حيث تستمر في توسيع الفئات الأخرى.
يتيح لك تمديد فئة الموضوع إمكانية الوصول إلى العديد من الطرق المهمة التي تعمل على تحسين وظائف سلسلة الرسائل. على سبيل المثال ، العائد () ، التوقف () ، isalive () ، المقاطعة (). تحتوي الواجهة Runnable على طريقة محدودة إلى حد ما.
تغليف
إذا كنت مهتمًا بمعرفة المزيد حول Java ، تطوير البرامج الكاملة ، فراجع برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، 9+ المشاريع ، والمهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

