دورة حياة الخيط في جافا

نشرت: 2023-01-27

جدول المحتويات

أساسيات خيوط جافا:

يسهل الخيط في Java أداء أنشطة متعددة داخل عملية واحدة. تعتبر عملية خفيفة الوزن. يمكن أيضًا تعريف الخيط على أنه سلسلة من العبارات المنفذة. يحتوي كل مؤشر ترابط في Java على مكدس خاص به وعداد برنامج ومتغيرات محلية. قد تكون سلاسل Java أيضًا سلسلة متداخلة من استدعاءات الطريقة. يتم مشاركة الذاكرة وحالة كل عملية والملفات بواسطة مؤشرات الترابط.

استخدامات الخيوط في جافا:

    • لإجراء معالجة في الخلفية أو غير متزامن
    • لتعزيز حساسية تطبيقات واجهة المستخدم الرسومية
    • لتنفيذ الجوانب الإيجابية للأنظمة متعددة المعالجات
    • لتبسيط منطق البرمجة في حالة وجود متعدد

يوجد مساران للتنفيذ عند استدعاء مؤشر ترابط. يتم استخدام أحد المسارين لتنفيذ مؤشر الترابط والآخر سوف يتتبع العبارة التالية لاستدعاء مؤشر الترابط. يحتوي كل مؤشر ترابط في Java على مساحة ذاكرة منفصلة ومكدس.

فيما يلي عوامل الخطر التي تمت مواجهتها أثناء استخدام الخيوط في أكواد Java.

  • التنسيق المناسب بين الخيوط مطلوب في الحالات التي تصل فيها الخيوط إلى المتغيرات الشائعة لعرض البيانات باستمرار.
  • يصبح أداء وصيانة الخيوط ، في حالة الإفراط في استخدامها في البرامج ، أمرًا صعبًا.

دورة حياة الخيوط في جافا:

في أي لحظة من تنفيذ البرنامج ، توجد الخيوط في Java في أي من الحالات المذكورة أدناه.

  1. جديد
  2. ممنوع
  3. قابل للتشغيل
  4. وقت الانتظار
  5. منتظر
  6. تم إنهاؤه

عرض مفصل لدورة حياة الخيط في Java

موضوع جديد:

الموضوع الذي تم إنشاؤه حديثًا يكون في حالة "جديد". لم يتم التقدم لتشغيل في هذه الحالة. لم يتم تنفيذ رمز الخيط في الحالة الجديدة بعد. لم يتم تشغيله بعد.

حالة التشغيل:

الخيوط في حالة التشغيل جاهزة للتشغيل. قد يكون موضوع في هذه الحالة جاهزًا للتشغيل في أي وقت أو ربما يكون قيد التشغيل بالفعل. يعمل برنامج جدولة مؤشر الترابط على تعزيز مسؤولية تخصيص وقت تشغيل مؤشر الترابط. يتم تخصيص وقت محدد لكل مؤشر ترابط فردي في برنامج متعدد الخيوط. يعمل كل مؤشر ترابط فردي لمدة قصيرة ثم يواجه وقفة. ثم يتم التنازل عن وحدة المعالجة المركزية إلى مؤشر ترابط آخر لتوفير فرصة لتشغيل مؤشرات الترابط الأخرى. في هذه المرحلة ، تكون جميع مؤشرات الترابط الجاهزة التي تنتظر وحدة المعالجة المركزية والخيوط التي تعمل حاليًا في حالة قابلة للتشغيل.

تحقق من دوراتنا التكنولوجية المجانية لتتفوق على المنافسة.

استكشف دوراتنا التدريبية الشهيرة في هندسة البرمجيات

ماجستير العلوم في علوم الكمبيوتر من جامعة جون مورس بليفربول و IIITB برنامج شهادة الأمن السيبراني من معهد كاليفورنيا للتكنولوجيا CTME
برنامج تدريب تطوير المكدس الكامل برنامج PG في Blockchain
برنامج PG التنفيذي في تطوير Full Stack
عرض جميع دوراتنا أدناه
دورات هندسة البرمجيات

حالة الانتظار / الحظر:

يوجد مؤشر ترابط في أي من الحالات المذكورة أدناه عندما لا يعمل مؤقتًا.

  • منتظر
  • ممنوع

يوجد مؤشر ترابط في انتظار اكتمال الإدخال / الإخراج في حالة حظر. تتمثل وظيفة جدولة مؤشر الترابط في جدولة تنفيذ مؤشر ترابط محظور أو قيد الانتظار عن طريق إعادة تنشيطه. لا يُسمح بأي مؤشر ترابط في هذه الحالة لمواصلة التنفيذ الإضافية حتى يتم تحويله إلى حالة قابلة للتشغيل. لا تستخدم الخيوط في حالة الكتلة أو الانتظار أي دورة CPU.

يُفرض حظر مؤشر ترابط عندما يحاول الوصول إلى قسم محمي من رمز محمي بواسطة سلسلة رسائل أخرى في الوقت الحالي. يقوم المجدول بتحويل أحد سلاسل الرسائل التي تنتظر قسمًا محميًا إلى حالة قابلة للتشغيل عندما يتم إلغاء تأمين القسم لجميع سلاسل العمليات. من ناحية أخرى ، يوجد مؤشر ترابط في حالة انتظار أثناء انتظار الخيط الآخر في حالة معينة. يتم دفع سلاسل الرسائل في حالة الانتظار إلى حالة قابلة للتشغيل بمجرد استيفاء الشرط المحدد للانتظار. إذا تم نقل مؤشر ترابط قيد التشغيل في الوقت الحالي إلى حالة انتظار / حظر ، يقوم مجدول مؤشر الترابط بجدولة مؤشر ترابط آخر من التسلسل القابل للتشغيل.

الانتظار المحدد بوقت:

عندما يتم استدعاء طريقة باستخدام وسيطة انتهاء الوقت ، يكون مؤشر الترابط موجودًا في حالة انتظار محددة بوقت. يستمر الخيط في هذه الحالة حتى اكتمال المهلة المحددة أو حتى استلام إشعار. على سبيل المثال ، يتم نقل مؤشر ترابط إلى حالة انتظار موقوت إذا كان يستدعي الانتظار أو السكون المشروط.

حالة الإنهاء:

يتم إنهاء الخيوط بسبب أي من الأسباب التالية.

  • الخروج العادي من مؤشر الترابط عند الانتهاء من تنفيذ مقاطع التعليمات البرمجية داخل مؤشر الترابط.
  • حدوث أي حدث خاطئ نادر مثل استثناء غير معالج وخطأ تجزئة.

لا يستهلك مؤشر ترابط في حالة منتهية أي دورات CPU.

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

مهارات تطوير البرمجيات عند الطلب

دورات جافا سكريبت دورات جافا الأساسية دورات هياكل البيانات
دورات Node.js دورات SQL دورات تطوير مكدس كاملة
دورات NFT دورات DevOps دورات البيانات الضخمة
دورات React.js دورات الأمن السيبراني دورات الحوسبة السحابية
دورات تصميم قواعد البيانات دورات بايثون دورات العملات المشفرة

تنفيذ حالات الخيط في جافا:

لإنجاز الحالة الحالية للخيط في Java ، نستخدم الطريقة Thread.getState (). تقدم Java أيضًا فئة java.lang.Thread.State التي يتم فيها تحديد ثوابت ENUM لحالة مؤشر الترابط. التفاصيل ملخصة في الجدول أدناه.

نوع ثابت إعلان وصف
جديد الخيط النهائي العام الثابت. الدولة جديد إنها حالة مؤشر الترابط الخاصة بالخيط الذي تم إنشاؤه للتو ولم يبدأ تنفيذه بعد.
قابل للتشغيل الخيط النهائي العام الثابت يصف حالة مؤشر ترابط قيد التشغيل بالفعل أو مؤشر ترابط جاهز للتشغيل.

يمكن أن يكون نفس مؤشر الترابط في حالة قابلة للتشغيل لجهاز Java Virtual وحالة انتظار موارد نظام التشغيل الأخرى مثل المعالج.

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

  1. الكائن ينتظر بدون مهلة
  2. LockSupport.park
  3. Thread.egin مع عدم وجود مهلة

قد تكون حالة الانتظار بسبب إكمال مهمة معينة بواسطة مؤشر ترابط آخر.

وقت الانتظار الموضوع النهائي العام الثابت. الدولة TIMED_WAITING إنها حالة الخيط التي تنتظر وقتًا محددًا. يؤدي استدعاء أي من الطرق التالية إلى حالة انتظار موقوتة لسلسلة مع وقت انتظار إيجابي معين.

  1. Thread.join with timeout
  2. الكائن. انتظر مع انتهاء المهلة
  3. LockSupport.partUntil
  4. LockSupport.parkNanos
تم إنهاؤه الخيط النهائي العام الثابت. الدولة منتهية إنها حالة الخيط الذي أكمل تنفيذ عبارات الكود المكونة له.

الخيط يستقر في حالة جديدة عندما يتم إنشاؤه للتو. عندما يتم استدعاء أسلوب .start () في مؤشر ترابط ، يتم نقله إلى حالة Runnable بواسطة جدولة مؤشر الترابط. عندما يتم استدعاء أسلوب Join () على مثيل مؤشر ترابط ، سينتظر مؤشر الترابط الذي يقوم بتنفيذ عبارة التعليمات البرمجية حاليًا حتى يتم إنهاء مؤشر الترابط هذا. لذلك ، قبل طباعة العبارة النهائية على وحدة التحكم ، يتم استدعاء وظيفة الانضمام () في مؤشر الترابط 2 بواسطة البرنامج ويحتفظ بالحلقة 1 في الانتظار حتى يكمل مؤشر الترابط 2 تنفيذه وينتقل إلى الحالة المنتهية. نظرًا لأن thread1 ينتظر اكتمال تنفيذ thread2 ، فإنه يتم وضعه في حالة الانتظار.

اقرأ مقالاتنا الشهيرة المتعلقة بتطوير البرمجيات

كيف يتم تنفيذ تجريد البيانات في Java؟ ما هي الطبقة الداخلية في جافا؟ معرفات Java: التعريف والنحو والأمثلة
فهم التغليف في OOPS بأمثلة شرح حجج سطر الأوامر في لغة سي أهم 10 ميزات وخصائص للحوسبة السحابية في عام 2022
تعدد الأشكال في جافا: المفاهيم والأنواع والخصائص والأمثلة الحزم في Java وكيفية استخدامها؟ برنامج Git التعليمي للمبتدئين: تعلم Git من الصفر

مزايا وقيود استخدام الخيوط في برامج Java:

استخدام الخيوط في برامج Java له الفوائد التالية.

  • تقليل الوقت المستغرق لتطوير الكود
  • انخفاض تكاليف الصيانة
  • أداء محسن للتطبيقات المعقدة
  • تعزيز استجابة واجهات المستخدم
  • موازاة المهام
  • تُستخدم الخيوط في تطبيقات الخادم لتحسين الإنتاجية العالية واستخدام الموارد.
  • إذا كان لا يمكن استخدام جميع موارد الحوسبة الخاصة بوحدة المعالجة المركزية بواسطة مؤشر ترابط ، فإن تشغيل مؤشر ترابط آخر سيبقيها مشغولة.
  • إذا تم تشغيل نفس مجموعة البيانات بواسطة عدة سلاسل رسائل ، فيمكن مشاركة ذاكرة التخزين المؤقت الخاصة بهم. وهذا يؤدي إلى استخدام أفضل للتخزين المؤقت أو مواءمة قيمها.

هناك العديد من عيوب استخدام الخيوط في برامج جافا. بعضها مدرج أدناه.

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

إذا كنت مهتمًا بمعرفة المزيد حول Java ، تطوير البرامج المتكاملة ، تحقق من برنامج upGrad & IIIT-B التنفيذي PG في تطوير البرمجيات - التخصص في تطوير المكدس الكامل المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، أكثر من 9 مشاريع ، ومهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

ترغب في مشاركة هذه المقالة؟

استعد لمهنة المستقبل

تقدم الآن للحصول على درجة الماجستير في هندسة البرمجيات