Write a complete java program that creating two threads separetly
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: نقاش و أستفسارات الاعضاء
صفحة 1 من اصل 1 • شاطر
Write a complete java program that creating two threads separetly
السلام عليكم ورحمة الله وبركاته لو سمحتوا ممكن احد يفهمني ويشرح هذا السؤال ويحله لي واكون له شاكره
Write a complete java program that creating two threads separetly:
Each thread creating by implements Runnable interface.
One thread for printing odd number;
Second thread for printing even number;
Using sleep(10000 ) in each thread to stop 10 seconds between one printing and another
Hints: Do not forget using exception techniques with sleep()
Write a complete java program that creating two threads separetly:
Each thread creating by implements Runnable interface.
One thread for printing odd number;
Second thread for printing even number;
Using sleep(10000 ) in each thread to stop 10 seconds between one printing and another
Hints: Do not forget using exception techniques with sleep()
joryah- ..
- تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة :
الجنس :
رد: Write a complete java program that creating two threads separetly
بسم الله الرحمن الرحيم
أهلا و سهلا اختى الكريمة و مرحبا بك مجدداً .....بالنسبة لسؤالك فهو يطلب انشاء برنامج جافا ليقوم بطابعة الاعداد الفردية و الزوجية باستخدام مايسمى threads و الدالة sleep بحيث تتم عملية الطباعة كل 10 ثوانى بعد طباعة كل رقم ....
قبل البدء تعالى نتعرف على الكائن threads ...فهو أحد الكائنات يتم استخدامة فى الجافا ليسمح للتطبيق بالقيام بعدة مهام مترابطة تعمل سويا بشكل متزامن و التى تعمل في الخلفية لتوفير المساحة في ذاكرة الجهاز .
أما كيفية إنشاء الكائن threads لابد من توفير الاتى :
1_ إنشاء الكلاس implements Runnable
2_ انشاء الطريقة void run()
و ذلك باستخدام الاكواد التالية :
- الكود:
class egy implements Runnable{
public void run(){
System.out.println("Hello world ");
}
}
كما تلاحظين فى الكود السابق قمت بإنشاء الكلاس egy على انه من نوع implements Runnable .....داخل هذا الكلاس أنشأنا الدالة أو الطريقة void run ....وبداخل تلك الطريقة كتبنا الكود المراد تنفيذة ....
أما فى الدالة الرئسية للبرنامج نقوم بكتابة الكود التالى :
- الكود:
public static void main(String[] args) {
egy a=new egy();
Thread t=new Thread(a);
t.start();
}
عرفنا الكائن a على انه كائن جديد من الكلاس egy ....بعد ذلك قمنا بالاعلان عن الكائن t على أنه كائن جديد من Thread ....و السطر الاخير لبدء تشغيل الكائن t
وهكذا بالنسبة لانشاء الكائن Thread و كيفية استخدامه .....نعود الان الى سؤالك
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
سؤالك يتطلب عدد 2 كائنات من Thread .....الاول لطباعة الاعداد الفردية odd number ....و الثانى لطباعة الاعداد الزوجية even number .......أذن الاكواد ستكون على النحو التالى :
1_ سأقوم بأنشاء واجهة الكائن الخاص بطباعة الاعداد الفردية باستخدام الكود التالى :
- الكود:
class egyodd implements Runnable{
public void run(){
for(int i=1;i<=11;i =2) {
System.out.println(i);
}
}
}
2_ سأقوم بأنشاء واجهة الكائن الخاص بطباعة الزوجية باستخدام الكود التالى :
- الكود:
class egyeven implements Runnable{
public void run(){
for(int i=0;i<11;i =2) {
System.out.println(i);
}
}
}
و يجب ملاحظة أن السؤال لم يحدد عدد الارقام المطلوب طباعتها لذلك أستخدمت ارقام من 0 الى11
و ايضا سؤالك أوضح بأنه يجب أستخدام الدالة sleep و ذلك لتتم عملية طباعة الارقام كل 10 ثوانى من طباعة الرقم الاول و بالتالى سيتم تعديل الاكواد السابقة على النحو التالى :
- الكود:
class egyodd implements Runnable{
public void run(){
for(int i=1;i<=11;i =2) {
System.out.println("odd:" i);
try {
Thread.sleep(10000);
} catch (InterruptedException ex) {
System.out.println("error:" ex.getMessage());
}
}
}
}
class egyeven implements Runnable{
public void run(){
for(int i=0;i<11;i =2) {
System.out.println("even:" i);
try {
Thread.sleep(10000);
} catch (InterruptedException ex) {
System.out.println("error:" ex.getMessage());
}
}
}
}
و يمكنك ملاحظة التغير فى الكود وهو أننا فى كتبنا الكود الذى سيقوم بايقاف البرنامج لمدة 10 ثوانى بين كل طباعة رقم لاخر باستخدام الدالة sleep و استخدام تلك الدالة سينتج عنها الخطأ InterruptedException لذلك استخدمنا التعليمة try ....catch
الخطوة الاخيرة تحت الدالة الرئسية للبرنامج نكتب الكود التالى :
- الكود:
public static void main(String[] args) {
egyodd a=new egyodd();
Thread t1=new Thread(a);
egyeven b = new egyeven();
Thread t2=new Thread(b);
t1.start();
t2.start();
}
اذن الكود النهائى لحل برنامجك سيكون على النحو التالى :
- الكود:
package ex1;
import java.util.logging.Level;
import java.util.logging.Logger;
class egyodd implements Runnable{
public void run(){
for(int i=1;i<=11;i =2) {
System.out.println("odd:" i);
try {
Thread.sleep(10000);
} catch (InterruptedException ex) {
System.out.println("error:" ex.getMessage());
}
}
}
}
class egyeven implements Runnable{
public void run(){
for(int i=0;i<11;i =2) {
System.out.println("even:" i);
try {
Thread.sleep(10000);
} catch (InterruptedException ex) {
System.out.println("error:" ex.getMessage());
}
}
}
}
public class Ex1 {
public static void main(String[] args) {
egyodd a=new egyodd();
Thread t1=new Thread(a);
egyeven b = new egyeven();
Thread t2=new Thread(b);
t1.start();
t2.start();
}
}
و المخرجات ستكون على النحو التالى :
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: Write a complete java program that creating two threads separetly
دايما شرحك متميز يا استاذ احمد ....جزاك الله خيراً على كل ما تقوم به من اجلنا
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: Write a complete java program that creating two threads separetly
استاذ احمد من قلبي لك جزيل الشكر على الشرح المبدع فعلا ابدعت جزاك الله خير حتى فهمت اشياء ما كنت اعرفها ممنونه لك كثير ...
joryah- ..
- تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة :
الجنس :
رد: Write a complete java program that creating two threads separetly
استاذ احمد لو سمحت المخرجات ما طلعت لي مضبوطه يعني طلعها لي كلها رقم 2 اتوقع الخطا في for الارقام العدديه والفرديه حاولت اعدله مو راضي ياليت توضح لي الصح
joryah- ..
- تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة :
الجنس :
رد: Write a complete java program that creating two threads separetly
joryah كتب:استاذ احمد لو سمحت المخرجات ما طلعت لي مضبوطه يعني طلعها
لي كلها رقم 2 اتوقع الخطا في for الارقام العدديه والفرديه حاولت اعدله
مو راضي ياليت توضح لي الصح
ارجوا المعذرة اختى الكريمة على هذا الخطأ .....قومى بعمل الات فى جملة for:
- الكود:
(int i=1;i<=11;i +=2)
ويجب ملاحظة أن ما تم تعديله هو إضافة معامل الاسناد (+) قبل الرقم (2) ....طبعا هذا فى كل من الكلاس egyodd و الكلاس egyeven
كما يوجد فى الكود خطأ بسيط أخر فى كلا الكلاسين وهو على النحو التالى :
- الكود:
System.out.println("odd:" i);
- الكود:
System.out.println("error:" ex.getMessage());
و الصحيح أن يكتب هكذا
- الكود:
System.out.println("odd:" +i);
- الكود:
System.out.println("error:" +ex.getMessage());
أى اننا قمنا بإضافة معامل الاسناد (+) فى جملة الطباعة ....
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: Write a complete java program that creating two threads separetly

joryah- ..
- تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة :
الجنس :
رد: Write a complete java program that creating two threads separetly


joryah- ..
- تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: نقاش و أستفسارات الاعضاء
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» شركة تنظيف مسابح بالرياض
» "بروتين بعد التكميم فوائد البروتين بعد التكميم بروتين بودر بعد التكميم"
» اشهر نسخ واتساب بلس 2023 whatsapp plus
» متجر مجوهرات دير: إشراقة الذهب الخالص
» صراف صينى مقاس57*40
» فلاي تورز: اكتشف عالمًا من السفر والسياحة المثيرة
» متجر yallaa kids : مصدر الإبداع والتعلم للأطفال
» افضل تمويل
» "اقوي عروض المساج "