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

Write a complete java program that creating two threads separetly

اذهب الى الأسفل

Write a complete java program that creating two threads separetly Empty Write a complete java program that creating two threads separetly

مُساهمة من طرف joryah السبت أبريل 20, 2013 1:54 pm

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


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
joryah
..
..

تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة : السعودية
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Write a complete java program that creating two threads separetly Empty رد: Write a complete java program that creating two threads separetly

مُساهمة من طرف أحمد مناع السبت أبريل 20, 2013 10:17 pm

بسم الله الرحمن الرحيم


أهلا و سهلا اختى الكريمة و مرحبا بك مجدداً .....بالنسبة لسؤالك فهو يطلب انشاء برنامج جافا ليقوم بطابعة الاعداد الفردية و الزوجية باستخدام مايسمى 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 Egy-tech13664957201

ويجب ملاحظة أن عملية الطباعة ستتم كل 10 ثوانى من طباعة كل رقم حتى ينتهى البرنامج

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Write a complete java program that creating two threads separetly Empty رد: Write a complete java program that creating two threads separetly

مُساهمة من طرف زهراء الأحد أبريل 21, 2013 3:05 pm

دايما شرحك متميز يا استاذ احمد ....جزاك الله خيراً على كل ما تقوم به من اجلنا
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Write a complete java program that creating two threads separetly Empty رد: Write a complete java program that creating two threads separetly

مُساهمة من طرف joryah الأحد أبريل 21, 2013 8:20 pm

استاذ احمد من قلبي لك جزيل الشكر على الشرح المبدع فعلا ابدعت جزاك الله خير حتى فهمت اشياء ما كنت اعرفها ممنونه لك كثير ...
joryah
joryah
..
..

تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة : السعودية
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Write a complete java program that creating two threads separetly Empty رد: Write a complete java program that creating two threads separetly

مُساهمة من طرف joryah الأحد أبريل 21, 2013 8:45 pm

استاذ احمد لو سمحت المخرجات ما طلعت لي مضبوطه يعني طلعها لي كلها رقم 2 اتوقع الخطا في for الارقام العدديه والفرديه حاولت اعدله مو راضي ياليت توضح لي الصح
joryah
joryah
..
..

تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة : السعودية
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Write a complete java program that creating two threads separetly Empty رد: Write a complete java program that creating two threads separetly

مُساهمة من طرف أحمد مناع الإثنين أبريل 22, 2013 7:26 am

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());

أى اننا قمنا بإضافة معامل الاسناد (+) فى جملة الطباعة ....

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Write a complete java program that creating two threads separetly Empty رد: Write a complete java program that creating two threads separetly

مُساهمة من طرف joryah الإثنين أبريل 22, 2013 4:50 pm

Crying or Very sad استاذ احمد تاكد لي من شرط الfor لانه ما يطلع القيم صح يطلع odd=3 و even=3 يكرر العدد زي كذا اتوقع كل for تختلف من الoddوeven
joryah
joryah
..
..

تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة : السعودية
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Write a complete java program that creating two threads separetly Empty رد: Write a complete java program that creating two threads separetly

مُساهمة من طرف joryah الإثنين أبريل 22, 2013 4:56 pm

Very Happy Laughing خلاص استاذ احمد مشكووور عدلت الفور وضبط معاااي شكرا
joryah
joryah
..
..

تاريخ التسجيل : 05/12/2012
المساهمات : 24
النقاط : 36
التقيم : 0
الدولة : السعودية
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى