السلام عليكم
من المعرف يا إخواني اننا لو اردنا ان نعمل Recursion في دالة معينة فإننا نقوم بإستدعاء نفس إسم الدالة اي على الشكل التالي::
void xx()
{
xx();
}لكن السؤال كيف يمكن عمل Recursion لدلة تنفيذ Thread و أقصد هنا دالة run ؟؟؟؟
السلام عليكم
من المعرف يا إخواني اننا لو اردنا ان نعمل Recursion في دالة معينة فإننا نقوم بإستدعاء نفس إسم الدالة اي على الشكل التالي::
void xx()
{
xx();
}لكن السؤال كيف يمكن عمل Recursion لدلة تنفيذ Thread و أقصد هنا دالة run ؟؟؟؟
لا أظن أن هناك مشاكل
هل جربت أن تقوم بعملية Recursion
ولاحظت أن هناك مشكلة ما؟
ثم لماذا تريد أن تستخدم Recursion؟
فصل أكثر قليلاً
تحياتي
السلام عليكم اخي :
حقيقة انا اريد هذا الإستفسار و ذلك بسبب هدف ما يلزمني في برمجتي في المستقبل القريب .
حقيقة // قمت بتجريب مثال بسيط , لكن الذي لا أعرفه , هل بإستدعاء 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();
}
}تم تعديل هذه المشاركة بواسطة MKSoft في 12 أغسطس 2008 في 19:56
سلام
لما تستدعي الدالة run بشكل مباشر يكون التنفيذ بنفس الThread الي استدعاها
الدالة start هي الي تسبب إنشاء Thread جديد... وتقدر تستديعها مرة واحدة فقط لكل Thread
تم تعديل هذه المشاركة بواسطة javaRocks&Rolls في 12 أغسطس 2008 في 22:01
شكرا أخيjavaRocks&Rolls على التوضيح , وبارك الله فيك.
زيادة على ماقال جافا روك
هناك نقطه مهمه وهي علاقة برنامجك بالثريد ،
وقد فصلت كيفية عمل الثريد وشكل الستاك في موضوع نظره على الثريد