عندما يبدأ برنامج Java ، يتم تشغيل مؤشر ترابط على الفور. تنعكس أهمية الخيط الرئيسي في جانبين:
على الرغم من أن الخيط الرئيسي يتم إنشاؤه تلقائيًا عند بدء تشغيل البرنامج ، إلا أنه يمكن التحكم فيه بواسطة كائن مؤشر ترابط. للقيام بذلك ، يجب عليك الاتصال بالطريقة CurrentThread () للحصول على إشارة إليها ، وهي عضو ثابت عام في فئة الخيوط. شكله المعتاد كما يلي:
ترابط ثابت CurrentThread ()
هذه الطريقة تُرجع إشارة إلى الخيط الذي أطلق عليه. بمجرد الحصول على إشارة إلى الموضوع الرئيسي ، يمكنك التحكم في مؤشر الترابط الرئيسي كما تفعل للتحكم في مؤشرات الترابط الأخرى.
لنبدأ بمراجعة الأمثلة التالية:
// التحكم في الموضوع الرئيسي. من الخيط T.SetName ("موضوع MY") ؛ .println (n) ؛في هذا البرنامج ، يتم الحصول على الإشارة إلى مؤشر الترابط الحالي (أو الخيط الرئيسي) عن طريق استدعاء CurrentThread () ، والذي يتم تخزينه في المتغير المحلي t. ثم يعرض البرنامج معلومات الموضوع. ثم يقوم البرنامج باستدعاء setName () لتغيير الاسم الداخلي للمعلومات. يتم عرض معلومات الموضوع مرة أخرى. بعد ذلك ، يبدأ رقم الدورة في الانخفاض من 5 ، متوقفًا لمدة ثانية واحدة في كل مرة. يتم الإيقاف المؤقت بواسطة طريقة النوم (). ينص بيان النوم () بوضوح على أن وقت التأخير هو 1 مللي ثانية. انتبه إلى كتلة المحاولة/الإمساك خارج الحلقة.
قد ترفع طريقة Sleep () لفئة الخيط استثناءًا من المقاطع. سيحدث هذا الموقف عندما تريد المواضيع الأخرى إزعاج خيط النوم. هذا المثال ببساطة يطبع الرسالة سواء توقفت. في البرامج الفعلية ، يجب أن تكون مرنًا في التعامل مع مثل هذه المشكلات. فيما يلي إخراج هذا البرنامج:
مؤشر الترابط الحالي: مؤشر ترابط [Main ، 5 ، Main] بعد تغيير الاسم: مؤشر ترابط [موضوع بلدي ، 5 ، رئيسي] 54321
لاحظ أنه يتم استخدام t كإخراج عند استخدام المعلمة في العبارة println (). ترتيب العرض: اسم الموضوع ، الأولوية ، واسم المجموعة. بشكل افتراضي ، اسم الموضوع الرئيسي هو الرئيسي. أولويته هي 5 ، وهي أيضًا القيمة الافتراضية ، كما أن اسم مجموعة مؤشرات الترابط التي تنتمي إليها. مجموعة مؤشرات الترابط هي بنية بيانات تتحكم في حالة مؤشرات الترابط كمجموعة كاملة. تتم معالجة هذه العملية من قبل بيئة وقت تشغيل الملكية ، لذلك لن أخوض في التفاصيل هنا. بعد تغيير اسم الموضوع ، يتم الإخراج T مرة أخرى. هذه المرة ، يتم عرض اسم الموضوع الجديد.
دعنا ندرس الطرق المحددة بواسطة فئة الخيط في البرنامج بعناية أكبر. تشير طريقة Sleep () إلى أن الخيط يتم استدعاؤه للتعليق وفقًا لوقت Millisecond. شكله المعتاد كما يلي:
رميات النوم الفراغ الثابت (مليون ثانية)
يتم تعريف الوقت للتعليق بوضوح على أنه ميلي ثانية. قد ترمي هذه الطريقة استثناء مقاطع.
هناك شكل ثانٍ من طريقة Sleep () ، والتي تظهر أدناه ، والتي تتيح لك تحديد ما إذا كان الوقت بالمللي ثانية أو النانوسية كدورات.
نوم باطل ثابت (الملايين الطويل ، int nanoseconds) يلقي المقاطعات
يتوفر النموذج الثاني فقط إذا تم السماح بفترة الزمن في النانو ثانية. كما هو موضح في البرنامج أعلاه ، يمكنك استخدام setName () لتعيين اسم مؤشر الترابط واستخدام GetName () للحصول على اسم مؤشر الترابط (هذه العملية لا تنعكس في البرنامج). هذه الأساليب هي أعضاء في فئة الخيوط ويتم إعلانها على النحو التالي:
Final void setName (String threadname) سلسلة نهائية getName ()
هنا ، يشير ThreadName على وجه التحديد إلى اسم الموضوع.