المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: كيف اعمل Recursion في دالة تنفيذ Thread ؟؟؟؟
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات لغات البرمجة العام > منتدى مبرمجي لغة جافا JAVA
MKSoft
السلام عليكم
من المعرف يا إخواني اننا لو اردنا ان نعمل Recursion في دالة معينة فإننا نقوم بإستدعاء نفس إسم الدالة اي على الشكل التالي::
كود
void xx()
{
xx();
}


لكن السؤال كيف يمكن عمل Recursion لدلة تنفيذ Thread و أقصد هنا دالة run ؟؟؟؟
علاء الصالحي
لا أظن أن هناك مشاكل
هل جربت أن تقوم بعملية Recursion
ولاحظت أن هناك مشكلة ما؟
ثم لماذا تريد أن تستخدم Recursion؟
فصل أكثر قليلاً

تحياتي
MKSoft
السلام عليكم اخي :
حقيقة انا اريد هذا الإستفسار و ذلك بسبب هدف ما يلزمني في برمجتي في المستقبل القريب .

حقيقة // قمت بتجريب مثال بسيط , لكن الذي لا أعرفه , هل بإستدعاء recursion يقوم بفتح Thread جديد , ام يبقى على نفس Thread ؟؟
كود
public class RecThread implements Runnable
{
    Thread t;
    public RecThread(){
        t = new Thread(this);
        t.start();
    }
    public void run(){
        int i = 0;
        while(i < 10){
            if(i == 5)
run();
            else
            System.out.println("i:=["+i+"]");
            
            try{Thread.sleep(500);}
            catch(Exception ex){}
            i++;
        }
    }
    public static void main(String[]args){
        RecThread rt = new RecThread();
    }
}
javaRocks&Rolls
سلام

لما تستدعي الدالة run بشكل مباشر يكون التنفيذ بنفس الThread الي استدعاها

الدالة start هي الي تسبب إنشاء Thread جديد... وتقدر تستديعها مرة واحدة فقط لكل Thread
MKSoft
شكرا أخيjavaRocks&Rolls على التوضيح , وبارك الله فيك.
Eisa Ayed
زيادة على ماقال جافا روك
هناك نقطه مهمه وهي علاقة برنامجك بالثريد ،
وقد فصلت كيفية عمل الثريد وشكل الستاك في موضوع نظره على الثريد

هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2008 Invision Power Services, Inc.