في المقالة السابقة ، قدمت طريقة التنفيذ لـ Java Multi-Threading.
بادئ ذي بدء ، دعني أخبركم بمزايا وعيوب الخيوط المتعددة
مزايا multithreading:
1) استخدام الموارد الأفضل
2) البرمجة أبسط في بعض الحالات
3) يستجيب البرنامج بشكل أسرع
تكلفة Multithreading:
1) تصميم أكثر تعقيدًا
على الرغم من أن بعض التطبيقات المتعددة المراكز هي أبسط من التطبيقات المفردة ، إلا أن البعض الآخر أكثر تعقيدًا بشكل عام. يحتاج هذا الجزء من الكود إلى اهتمام خاص عند الوصول إلى البيانات المشتركة من خلال سلسلة رسائل متعددة. غالبًا ما يكون التفاعل بين المواضيع معقدًا للغاية. من الصعب للغاية اكتشاف الأخطاء التي تم إنشاؤها بواسطة مزامنة مؤشر ترابط غير صحيحة وإعادة إنتاجها.
2) النفقات العامة لتبديل السياق
عندما تنتقل وحدة المعالجة المركزية من تنفيذ مؤشر ترابط إلى مؤشر ترابط آخر ، فإنها تحتاج أولاً إلى تخزين البيانات المحلية للمعلومات الحالية ، ومؤشرات البرنامج ، وما إلى ذلك ، ثم قم بتحميل البيانات المحلية لخيط آخر ، مؤشرات البرنامج ، وما إلى ذلك ، وأخيراً تبدأ تنفيذ. يسمى هذا التبديل "مفتاح السياق". تقوم وحدة المعالجة المركزية بتنفيذ مؤشر ترابط في سياق واحد ثم يتحول إلى سياق آخر لتنفيذ مؤشر ترابط آخر. تبديل السياق ليس رخيصًا. إذا لم يكن ذلك ضروريًا ، يجب تقليل تبديل السياق.
هناك نوعان من التقنيات الرئيسية لتحديد الخيوط والبدء:
أولاً: يجب أن تنفذ فئة مؤشرات الترابط واجهة java.lang.runnable أو ترث فئة java.lang.thread ، ويجب أن ينفذ كلاهما طريقة التشغيل ، حيث لا تحتوي طريقة التشغيل على مدخلات ولا إخراج ولا استثناءات.
ثانياً: استدعاء طريقة البدء في فئة مؤشرات الترابط لبدء تشغيل مؤشر الترابط.
اختبار الحزمة ؛ استيراد java.util.vector ؛ استيراد java.util.date ؛/*** مثيل اختبار الموضوع* @Author لا يزال يتدفق**/الفئة العامة threadnew {/***** Author لا يزال تدفق الماء******** / class threada يمتد إلى {private date recly ؛ ) ؛ Date () ؛ */public void startB () [] args) {threadnew test = new threadnew () ؛