logo

مفهوم الموضوع في جافا

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

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

فرز مصفوفة Java

من أجل تنفيذ مهام معقدة في الخلفية، استخدمنا مفهوم الموضوع في جافا . يتم تنفيذ كافة المهام دون التأثير على البرنامج الرئيسي. في البرنامج أو العملية، يكون لكل سلاسل العمليات مسار منفصل خاص بها للتنفيذ، لذلك يكون كل خيط في العملية مستقلاً.

مفهوم الموضوع في جافا

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

بطريقة بسيطة، الخيط هو:

  • الميزة التي يمكننا من خلالها تنفيذ أنشطة متعددة ضمن عملية واحدة.
  • عملية خفيفة الوزن.
  • سلسلة الأقوال المنفذة.
  • تسلسل متداخل لاستدعاءات الأسلوب.

نموذج الموضوع

تمامًا مثل العملية، يوجد الخيط في عدة حالات. وهذه الدول هي كما يلي:

مفهوم الموضوع في جافا

1) جديد (جاهز للتشغيل)

هناك خيط في جديد عندما يحصل على وقت وحدة المعالجة المركزية.

2) الجري

هناك خيط في الجري الدولة عندما يكون قيد التنفيذ.

3) مع وقف التنفيذ

رقم ارمسترونج

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

4) محظور

هناك خيط في محظور الدولة عندما يكون في انتظار الموارد.

5) أنهيت

يأتي الخيط في هذه الحالة عندما يتوقف تنفيذه على الفور في أي وقت.

إنشاء الموضوع

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

دعنا نتعمق في تفاصيل كلتا الطريقتين لإنشاء سلسلة رسائل:

فئة الموضوع

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

استبدال سلسلة جافا
    خيط() الموضوع (قابل للتشغيل، اسم السلسلة) الموضوع (هدف قابل للتشغيل) الموضوع (مجموعة ThreadGroup، الهدف القابل للتشغيل، اسم السلسلة) الموضوع (مجموعة ThreadGroup، هدف قابل للتشغيل) الموضوع (مجموعة ThreadGroup، اسم السلسلة) الموضوع (مجموعة ThreadGroup، الهدف القابل للتشغيل، اسم السلسلة، حجم المكدس الطويل)

واجهة قابلة للتشغيل (طريقة التشغيل ()

مطلوب واجهة Runnable ليتم تنفيذها بواسطة تلك الفئة التي تم تصميم مثيلاتها للتنفيذ بواسطة مؤشر ترابط. الواجهة القابلة للتشغيل تمنحنا يجري() طريقة لتنفيذ إجراء لموضوع.

طريقة البدء ().

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

لنأخذ مثالاً لفهم كيف يمكننا إنشاء ملف جافا موضوع عن طريق توسيع فئة الموضوع:

ThreadExample1.java

 // Implementing runnable interface by extending Thread class public class ThreadExample1 extends Thread { // run() method to perform action for thread. public void run() { int a= 10; int b=12; int result = a+b; System.out.println('Thread started running..'); System.out.println('Sum of two numbers is: '+ result); } public static void main( String args[] ) { // Creating instance of the class extend Thread class ThreadExample1 t1 = new ThreadExample1(); //calling start method to execute the run() method of the Thread class t1.start(); } } 

انتاج:

مفهوم الموضوع في جافا

إنشاء سلسلة رسائل من خلال تنفيذ الواجهة القابلة للتشغيل

في Java، يمكننا أيضًا إنشاء سلسلة رسائل من خلال تنفيذ الواجهة القابلة للتشغيل. توفر لنا الواجهة القابلة للتشغيل كلا من طريقة التشغيل () وطريقة البدء ().

لنأخذ مثالاً لفهم كيف يمكننا إنشاء سلسلة المحادثات وبدء تشغيلها وتشغيلها باستخدام الواجهة القابلة للتشغيل.

ThreadExample2.java

 class NewThread implements Runnable { String name; Thread thread; NewThread (String name){ this.name = name; thread = new Thread(this, name); System.out.println( 'A New thread: ' + thread+ 'is created
' ); thread.start(); } public void run() { try { for(int j = 5; j > 0; j--) { System.out.println(name + ': ' + j); Thread.sleep(1000); } }catch (InterruptedException e) { System.out.println(name + ' thread Interrupted'); } System.out.println(name + ' thread exiting.'); } } class ThreadExample2 { public static void main(String args[]) { new NewThread('1st'); new NewThread('2nd'); new NewThread('3rd'); try { Thread.sleep(8000); } catch (InterruptedException excetion) { System.out.println('Inturruption occurs in Main Thread'); } System.out.println('We are exiting from Main Thread'); } } 

انتاج:

مفهوم الموضوع في جافا

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