دورة حياة الخيط في جافا
نشرت: 2023-01-27جدول المحتويات
أساسيات خيوط جافا:
يسهل الخيط في Java أداء أنشطة متعددة داخل عملية واحدة. تعتبر عملية خفيفة الوزن. يمكن أيضًا تعريف الخيط على أنه سلسلة من العبارات المنفذة. يحتوي كل مؤشر ترابط في Java على مكدس خاص به وعداد برنامج ومتغيرات محلية. قد تكون سلاسل Java أيضًا سلسلة متداخلة من استدعاءات الطريقة. يتم مشاركة الذاكرة وحالة كل عملية والملفات بواسطة مؤشرات الترابط.
استخدامات الخيوط في جافا:
- لإجراء معالجة في الخلفية أو غير متزامن
- لتعزيز حساسية تطبيقات واجهة المستخدم الرسومية
- لتنفيذ الجوانب الإيجابية للأنظمة متعددة المعالجات
- لتبسيط منطق البرمجة في حالة وجود متعدد
يوجد مساران للتنفيذ عند استدعاء مؤشر ترابط. يتم استخدام أحد المسارين لتنفيذ مؤشر الترابط والآخر سوف يتتبع العبارة التالية لاستدعاء مؤشر الترابط. يحتوي كل مؤشر ترابط في Java على مساحة ذاكرة منفصلة ومكدس.
فيما يلي عوامل الخطر التي تمت مواجهتها أثناء استخدام الخيوط في أكواد Java.
- التنسيق المناسب بين الخيوط مطلوب في الحالات التي تصل فيها الخيوط إلى المتغيرات الشائعة لعرض البيانات باستمرار.
- يصبح أداء وصيانة الخيوط ، في حالة الإفراط في استخدامها في البرامج ، أمرًا صعبًا.
دورة حياة الخيوط في جافا:
في أي لحظة من تنفيذ البرنامج ، توجد الخيوط في Java في أي من الحالات المذكورة أدناه.
- جديد
- ممنوع
- قابل للتشغيل
- وقت الانتظار
- منتظر
- تم إنهاؤه
عرض مفصل لدورة حياة الخيط في 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 (). |
منتظر | الخيط النهائي العام الثابت. الدولة في الانتظار | يصف حالة الخيط المنتظر بسبب استدعاء إحدى الطرق التالية.
قد تكون حالة الانتظار بسبب إكمال مهمة معينة بواسطة مؤشر ترابط آخر. |
وقت الانتظار | الموضوع النهائي العام الثابت. الدولة TIMED_WAITING | إنها حالة الخيط التي تنتظر وقتًا محددًا. يؤدي استدعاء أي من الطرق التالية إلى حالة انتظار موقوتة لسلسلة مع وقت انتظار إيجابي معين.
|
تم إنهاؤه | الخيط النهائي العام الثابت. الدولة منتهية | إنها حالة الخيط الذي أكمل تنفيذ عبارات الكود المكونة له. |
الخيط يستقر في حالة جديدة عندما يتم إنشاؤه للتو. عندما يتم استدعاء أسلوب .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 ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.