يشارك هذا المثال ثلاث طرق لتنفيذ متعدد الخيوط في Java للرجوع إليه. المحتوى المحدد كما يلي
استيراد java.util.concurrent.callable ؛ import java.util.concurrent.futureTask ؛ الفئة العامة الرئيسية {public static void main (string [] args) {// method 1: inherit thread int i = 0 ؛ i) ؛ // if (i == 5) {// threadextendsthread threadextendsthread = new threadextendsThread () ؛ // threadextendsthread.start () ؛ //} //} // method 2: elever RunNable // for (i = 0 ؛ i <100 ؛ i ++) {// system.out.println i) ؛ // if (i == 5) {// RunNable RunNable = new threadimplementsrunnable () ؛ // new thread (runnable) .start () ؛ //} //} // method 3: تطبيق واجهة callable callable <minger> call = new threadimplementscall () ؛ FutureTask <integer> futureTask = new FutureTask <> (Callable) ؛ لـ (i = 0 ؛ i <100 ؛ i ++) {system.out.println (thread.currentThRead (). getName () + "" + i) ؛ if (i == 5) {new thread (futureTask) .start () ؛ موضوع جديد (futureTask) .start () ؛ }} try {system.out.println ("futureTask ruturn:" + futureTask.get ()) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }}} الطريقة 1 ، وراثة من الموضوع
يمتد ThreadextendSTherSthread من الفئة العامة. Override public void run () {for (؛ i <100 ؛ i ++) {system.out.println (getName () + "" + i) ؛ }}}طريقة التشغيل هي هيئة تنفيذ مؤشر الترابط ، وكائن ThreadextendsThread هو كائن مؤشر الترابط.
الطريقة 2: تنفيذ واجهة Runnable
الطبقة العامة threadimplementsrunnable الأدوات runnable {private int i ؛ Override public void run () {for (؛ i <100 ؛ i ++) {system.out.println (thread.currentThread (). getName () + "" + i) ؛ }}}طريقة التشغيل هي هيئة تنفيذ مؤشر الترابط. عند استخدامه ، يكون كائن مؤشر الترابط جديدًا ، ويتم تمرير الكائن القابل للتشغيل إلى كائن مؤشر الترابط كهدف. ويمكن استخدام نفس الكائن القابل للتشغيل كهدف لمؤشرات الترابط المتعددة ، وتشارك مؤشرات الترابط هذه متغيرات مثيل الكائن القابل للتشغيل.
الطريقة 3: تنفيذ الواجهة القابلة للاتصال
استيراد java.util.concurrent.callable ؛ فئة public threadimplementscallable الأدوات القابلة للاتصال <integer> {private int i ؛ Override Public Integer Call () يلقي الاستثناء {for (؛ i <100 ؛ i ++) {system.out.println (thread.currentThRead (). getName () + "" + i) ؛ } العودة أنا ؛ }}تشبه الواجهة القابلة للاستدعاء واجهة Runnable ، لكنها أقوى من الطرف الآخر. هيئة تنفيذ مؤشر الترابط هي طريقة استدعاء ، والتي لها قيمة إرجاع ويمكنها إلقاء استثناءات. عند استخدامها ، قم بلف الكائن القابل للاتصال ككائن مستقبلي ، حدد نوع قيمة الإرجاع من خلال الأداء العام. يمكنك استدعاء طريقة الحصول على مستقبلات FutureTash لاسترداد نتيجة التنفيذ.
ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون مفيدًا لتعلم الجميع.