You are on page 1of 12

‫‪,‬‬

‫يه املدرة ؿىل املِام تبنرث من "‪ "Process‬يف هفس اموكت‪.‬‬


‫مفث ًال جسعَؽ جشغَل "‪ "PowerPoint‬وجرانمج "‪ "Access‬يف هفس اموكت مؽ مالحؼة اهَ ال ثوخد ؿالكة تني امربانجمني‪ ,‬اي ال‬
‫ًـمتد لك مهنام ؿىل الخر أو ًًذؼر امتام معوَة من الخر‪.‬‬

‫يه املدرة ؿىل أداة أنرث من وػَفة داخل هفس امـموَة‪.‬‬


‫مفث ًال جسعَؽ ان ثوـة مـحة "‪ "Space War‬وجسعَؽ حترًم امعائرة وثؼِر كل أُذاف مخرضهبا نام ًوخد ضوت يف انوـحة‪ .‬اي ان‬
‫اس خـمويا داخل امـموَة امواحدة " انوـحة اميت ثوـهبا " متكٌا من املِام تبنرث من وػَفة يف هفس اموكت‪.‬‬
‫وًوخد هوؿان من امخعحَلات اخلاضة "" ‪.‬‬
‫‪ "Single Threaded Application" -1‬امخعحلات ذات املِمة امواحدة‪.‬‬
‫ُو امخعحَق اذلي ٌس خعَؽ أداء وػَفة واحدة يف وكت ما‪ .‬فاذا اكن ُياك انرث من وػَفة ٍراد ثيفِدُا فالتد أن ثًهتيي اموػَفة‬
‫الوىل حيت ميكن ثيفِد اموػَفة امثاهَة ‪ ,‬والتد ان ثًهتيي اموػَفة امثاهَة حىت ثحدأ امثامثة‪ .‬وُكذا حىت ًمت الىهتاء من مجَؽ‬
‫اموػائف يف امربانمج‪.‬‬

‫‪ " Multi-Threaded Application" -2‬امخعحَلات ذات املِام املخـددة‪.‬‬


‫ُو امخعحَق اذلي ٌس خعَؽ أداء أنرث من وػَفة يف هفس اموكت‪ ,‬اي ثيفِد وػَفة ما مؽ وػَفة أخرى يف هفس اموكت تدون أن‬
‫ثًذؼر أىهتاء اموػَفة الوىل‪.‬‬

‫‪Autumn/2017‬‬ ‫‪Prepared by Amer_GADOWA‬‬ ‫‪Programming: OOP_ Java2‬‬


‫وُو أحد اماكئيات ًمت اس خخدامة ىف اجلافا مُسمح نوخعحَق ابملِام تـدة همام مرتاتعة ثـمل سو ًي ثشلك مزتامن و امىت ثـمل يف اخلوفِة‬
‫مخوفري املساحة يف ذاهرة اجلِاز ‪.‬‬
‫من اوحض الامثةل مذطفح الاهرتهت هالحغ ان املخطفح حيمل انرث من ضورة يف هفس اموكت وذكل الن لك " ‪" Thread‬مس ئول‬
‫ؾن حتمَل ضورة خمخوفة‪ .‬اًضا اميص ًحدا ابمؼِور يف هفس اموكت اذلي ثؼِر فَِ امطور وذكل الن ُياك " ‪ " Thread‬مس ئول‬
‫ؾن حتمَل و ؾرض امـ "‪" HTML‬و اًضا جتد ُياك " ‪ " Thread‬مس ئول ؾن املدخالت من املس خخدم‪.‬‬
‫ختَل اهَ الًوخد " ‪ُ " Thread‬ذا جيـكل ثًذؼر لك ضورة ؿىل حدة مث ػِور اميص و ُكذا!‬
‫"‪.‬‬ ‫"‪Parallel‬‬ ‫أذ ًا " ‪ " Thread‬ؾحارة ؾن هممة او وػَفة ممكن ان ثـمل مؽ تـظ ابمخوازي‬

‫‪ " Garbage collection " -1‬اذلي ًـمل يف اخلوفِة مخوفري املساحة يف اذلاهرة‪.‬‬
‫‪ -2‬الاحداث اميت حتدث ؿىل امـ ‪ GUI‬مس ئول ؾن جتمَـِا " ‪ً " Thread‬ـمل يف اخلوفِة‪.‬‬
‫متاما مثل امـ ‪Process‬‬ ‫‪ Light‬الهَ ًيفذ هممة‬ ‫)‪Weight Process (LWP‬‬
‫ؿادة " ‪ً" Thread‬عوق ؿوََ امس‬
‫ومكن ؿادة حكون خفِفة‪.‬‬
‫امـ ) ‪ JVM (multithreaded‬هفسِا جس خخدم " ‪ " Thread‬فِيي جشغل " ‪ " Thread‬املس ئول ؾن "‬
‫‪ " Garbage collection‬و " ‪ " Thread‬املس ئول ؾن حتدًر ‪ GUI‬و " ‪ " Thread‬مربانجمم اذلي ًـمل‬
‫حتت ‪. JVM‬‬

‫‪Autumn/2017‬‬ ‫‪Prepared by Amer_GADOWA‬‬ ‫‪Programming: OOP_ Java2‬‬


‫ؾيدما ثخـامل مؽ امـ ‪ Thread‬أهت تذكل ثلوم تخغَري حامخَ‪ ,‬مفرة ثًش ئَ‪ ,‬و مرة جتِزٍ و جشغهل‪ ,‬و كد ثوكفَ ؾن امـمل مدة مـَية مث‬
‫ثـَدٍ نوـمل تـد مدة‪ ,‬و ؾيد االىهتاء ًمت مسحَ من اذلاهرة مخوفري مساحة امخخزٍن‪.‬‬

‫‪ .1‬املرحةل "‪ : " New‬يه املرحةل اميت ًمت فهيا اوشاء اكئن امـ ‪.Thread‬‬
‫" ‪ :‬ثحدأ ُذٍ املرحةل تـد اس خدؿاء ادلاةل )(‪ ,run‬و يه ثـين أن اكئن امـ ‪ Thread‬خاُز ًا مَيفذ الوامر‬ ‫"‪Runnable‬‬ ‫‪ .2‬املرحةل‬
‫املوضوؿة فَِ‪.‬‬
‫"‪ :‬ثحدأ ُذٍ املرحةل تـد اس خدؿاء ادلاةل )(‪ ,start‬و يه ثـين أن اكئن امـ ‪ً Thread‬حدأ تدٌفِذ الوامر‬ ‫"‪Running‬‬ ‫‪ .3‬املرحةل‬
‫املوضوؿة فَِ‪.‬‬
‫أو )(‪ , sleep‬و يه ثـين أن اكئن‬ ‫ُذٍ املرحةل تـد اس خدؿاء ادلاةل )(‪wait‬‬ ‫" ‪ :‬ثحدأ‬ ‫"‪Waiting‬‬ ‫‪ .4‬املرحةل‬
‫امـ ‪ Thread‬مذوكف ملدة مـَية‪.‬‬
‫"‪ :‬وجسمى اًض ًا ‪ , Terminated‬و يه ثـين اًلاف اكئن امـ ‪ Thread‬لكَ ُا ؾن امـمل و مسحَ من‬ ‫"‪Dead‬‬ ‫‪ .5‬املرحةل‬
‫ثحدأ ُذٍ املرحةل تـد اس خدؿاء ادلاةل )(‪interrupt‬‬ ‫اذلاهرة‪,‬‬

‫‪Autumn/2017‬‬ ‫‪Prepared by Amer_GADOWA‬‬ ‫‪Programming: OOP_ Java2‬‬


‫ فميكٌم أس خخدام ُذا اماكئن من خالل ثوس َؽ امفئة املراد أس خخدامَ فهيا‬Threads ‫ُياك خِاران دلًم لس خخدام اماكئن‬
implements ‫" ؾن ظرًق الامر‬Runnable" ‫ أو من خالل ثيفِذ واهجة‬extends Thread ‫ؾن ظرًق الامر‬
Runnable

. ‫ اىل امشفرة اخلاضة الوشاء فئة مـَية‬extends Thread ‫ ًمت اضافة الامر‬o
‫ و تداخوِا الاوامر امىت حرًد ثيفِذُا ثشلك مزتامن ؾيد جشغَل اكئن‬void run ‫ ندلاةل‬Override ‫ جية أوشاء‬o
Thread . ‫امـ‬
.ٍ‫" من اماكئن اذلى مت اوشاؤ‬start" ‫ ىف ادلاةل امرئُسة ًمت اوشاء اكئن من امالكس و اس خدؿاء ادلاةل‬o
.‫ ثشلك مذوازي‬void run ‫ خاُز الن و ًحدأ ثيفِذ الاوامر امىت تداخل ادلاةل‬Threads
public class MyThread extends Thread {

@Override
public void run(){ ‫ُيا ثضؽ الوامر اميت حرًد ثيفِذُا ؾيد اس خدؿاء ادلاةل‬ }}

‫ امئ‬،1 ‫" ًـمل لك مهنام تعحاؿة الركام‬ Thread_Two " ‫و‬ " Thread_One " ‫ ُام‬Threads ‫هلوم ابوشاء ازيني من‬
.‫ مؽ ثبخري اثهَة واحدة يف ؾرض امرمق امخايل‬11
public class Thread_One extends Thread {
public void run(){
for (int i=1; i<=10; i++){
System.out.println( " Good day Message from First Thread: " +i);
try {
Thread.sleep(1000);
}
catch (InterruptedException intE)
{
System.out.println( "First Thread is interrupted when it is
sleeping " +intE);
} } } }

public class Thread_Two extends Thread {


public void run(){
for (int i=1; i<=10; i++){
System.out.println( " Welcome Message from Second Thread : " +i);
try {
Thread.sleep(1000);

Autumn/2017 Prepared by Amer_GADOWA Programming: OOP_ Java2


}
catch (InterruptedException intE)
{
System.out.println( " Take_Care Second Thread is interrupted
when it is sleeping " +intE);
} } } }

public static void main(String args[])


{
Thread_One first = new Thread_One();

Thread_Two second = new Thread_Two();

first.start();

second.start();
} }

." implements Runnable" ‫ًمت اوشاء امالكس اذلي ًعحق االهرتفُس‬ o


.‫ و تداخوِا الاوامر امىت حرًد ثيفِذُا ثشلك مزتامن‬void run ‫جية أوشاء ادلاةل‬ o
.Thread ‫" ًمت اوشاء اكئن من امالكس‬main" ‫ىف ادلاةل امرئُس َة‬ o
" ‫ نوـالكس‬Argument ‫ و مترٍر اكئن مٌَ نـ‬.Runnable ‫اوشاء اكئن من امالكس اذلي ًعحق االهرتفُس‬ o
." Thread
.‫ مدشغَهل‬start() ‫اس خدؿاء ادلاةل‬ o
public class Thread_1 implements Runnable {
public void run(){
for (int i=1; i<=10; i++){
System.out.println(" Thresd_1 Message Using Runnable interface :"
+i);

try {
Thread.sleep(1000);
}
catch (InterruptedException intru)
{
System.out.println( "First Thread is interrupted when it
is sleeping" + intru);
}
} } }:

Autumn/2017 Prepared by Amer_GADOWA Programming: OOP_ Java2


public class Thread_2 implements Runnable
{
public void run()
{
for (int i=1; i<=10; i++)
{

System.out.println( "Messag from Second Thread : "


+i);
try
{
Thread.sleep (1000);
}
catch (InterruptedException intru)
{

System.out.println( " Message from Thread 2 I'm Using


Runnable interface :" + intru);
} } }}

public static void main(String args[])


{
Thread_1 first_1 = new Thread_1();

Thread_2 second_2 = new Thread_2();

Thread thread1 = new Thread(first_1);

thread1.start();

Thread thread2 = new Thread(second_2);

thread2.start();

}}

" Thread Class Constructors"

CONSTRUCTORS
public Thread()
1
.‫ مُس هل امس حمدد‬Thread َ‫ًًشئ اكئن هوؿ‬
public Thread(String name)
2
.َ‫ مؽ حتدًد امس‬Thread َ‫ًًشئ اكئن هوؿ‬
public Thread(Runnable target)
3
.Runnable َ‫ من اكئن هوؿ‬Thread َ‫ًًشئ اكئن هوؿ‬
public Thread(Runnable target, String name) 4

Autumn/2017 Prepared by Amer_GADOWA Programming: OOP_ Java2


‫ًًشئ اكئن هوؿَ ‪ Thread‬من اكئن هوؿَ ‪ Runnable‬مؽ حتدًد امسَ‪.‬‬
‫)‪public Thread(ThreadGroup group, String name‬‬
‫ًًشئ اكئن هوؿَ ‪ Thread‬و ًضـَ مضن مجموؿة حمددة‪ ,‬مؽ حتدًد امسَ‪.‬‬
‫ابرامِرتات‪ group :‬ؾحارة ؾن اكئن هوؿَ ‪ ThreadGroup‬ميثل مجموؿة من امـ ‪.Threads‬‬
‫‪5‬‬
‫‪ name‬ؾحارة ؾن امس ًمت اؾعاءٍ ماكئن امـ ‪ Thread‬اذلي سُمت اوشاءٍ و وضـَ مضن اجملموؿة املذهورة‪.‬‬
‫ٍريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة اوشاء اكئن ‪ Thread‬خدًد‬
‫تداخل اجملموؿة املشار اههيا‪.‬‬
‫)‪public Thread(ThreadGroup group, Runnable target‬‬
‫ًًشئ اكئن هوؿَ ‪ Thread‬من اكئن هوؿَ ‪ Runnable‬و ًضـَ مضن مجموؿة حمددة‪.‬‬

‫‪ 6‬امحارامِرتات ‪ group :‬ؾحارة ؾن اكئن هوؿَ ‪ ThreadGroup‬ميثل مجموؿة من امـ ‪.Threads‬‬


‫‪ target‬ؾحارة ؾن اكئن هوؿَ ‪ Runnable‬ميثل اكئن امـ ‪ Thread‬اذلي سُمت اوشاءٍ و وضـَ مضن اجملموؿة املذهورة‪.‬‬
‫ٍريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة اوشاء اكئن ‪ Thread‬خدًد‬
‫تداخل اجملموؿة املشار اههيا‪.‬‬
‫)‪public Thread(ThreadGroup group, Runnable target, String name‬‬
‫ًًشئ اكئن هوؿَ ‪ Thread‬من اكئن هوؿَ ‪ Runnable‬و ًضـَ مضن مجموؿة حمددة‪ ,‬مؽ حتدًد امسَ‪.‬‬
‫ابرامِرتات‪ group :‬ؾحارة ؾن اكئن هوؿَ ‪ ThreadGroup‬ميثل مجموؿة من امـ ‪.Threads‬‬
‫‪ target 7‬ؾحارة ؾن اكئن هوؿَ ‪ Runnable‬ميثل اكئن امـ ‪ Thread‬اذلي سُمت اوشاءٍ و وضـَ مضن اجملموؿة املذهورة‪.‬‬
‫‪ name‬ؾحارة ؾن امس ًمت اؾعاءٍ ماكئن امـ ‪ Thread‬اذلي سُمت اوشاءٍ و وضـَ مضن اجملموؿة املذهورة‪.‬‬
‫ٍريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة اوشاء اكئن ‪ Thread‬خدًد‬
‫تداخل اجملموؿة املشار اههيا‪.‬‬
‫)‪public Thread(ThreadGroup group, Runnable target, String name, long stackSize‬‬
‫ًًشئ اكئن هوؿَ ‪ Thread‬من اكئن هوؿَ ‪ Runnable‬و ًضـَ مضن مجموؿة حمددة‪ ,‬مؽ حتدًد امسَ‪ ,‬و حتدًد املساحة املطوى‬
‫اميت ميكن أن حتجز هل يف اذلاهرة‪.‬‬
‫ابرامِرتات ‪ group :‬ؾحارة ؾن اكئن هوؿَ ‪ ThreadGroup‬ميثل مجموؿة من امـ ‪.Threads‬‬
‫‪ target 8‬ؾحارة ؾن اكئن هوؿَ ‪ Runnable‬ميثل اكئن امـ ‪ Thread‬اذلي سُمت اوشاءٍ و وضـَ مضن اجملموؿة املذهورة‪.‬‬
‫‪ name‬ؾحارة ؾن امس ًمت اؾعاءٍ ماكئن امـ ‪ Thread‬اذلي سُمت اوشاءٍ و وضـَ مضن اجملموؿة املذهورة‪.‬‬
‫‪ stackSize‬ؾحارة ؾن املساحة املطوى اميت ميكن أن حيخوِا اكئن امـ ‪ Thread‬يف اذلاهرة‪.‬‬
‫ٍريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة اوشاء اكئن ‪ Thread‬خدًد‬
‫تداخل اجملموؿة املشار اههيا‪.‬‬

‫‪Autumn/2017‬‬ ‫‪Prepared by Amer_GADOWA‬‬ ‫‪Programming: OOP_ Java2‬‬


‫‪METHODS‬‬
‫)(‪public void run‬‬
‫جس خخدم مخجِزي الوامر اميت سدٌفذ ؾيد جشغَل امـ ‪.Thread‬‬
‫‪ 1‬امالكس اذلي ٍرث من امالكس ‪ Thread‬جية أن ًفـل مِا ‪ ,Override‬و ًضؽ تداخوِا الوامر اميت ٍرًدُا أن ثدٌفذ ؾيد‬
‫جشغَل امـ ‪.Thread‬‬
‫مدشغَل امـ ‪ Thread‬ؿوَم اس خدؿاء ادلاةل )(‪ start‬و اميت تدورُا ثلوم ابس خدؿاء ادلاةل )(‪ ,run‬أي ثيفذ الوامر املوحودة فهيا‪.‬‬
‫)(‪public void start‬‬
‫‪2‬جس خخدم مدشغَل اكئن امـ ‪ ,Thread‬أي مخيفِذ الوامر اميت مت وضـِا يف ادلاةل )(‪.run‬‬
‫حريم االس خثٌاء ‪ IllegalThreadStateException‬يف حال اكن اكئن امـ ‪ Thread‬شغاال كدل اس خدؿاهئا‪.‬‬
‫)‪public static void sleep(long milliseconds‬‬
‫ثوكف ثيفِذ أوامر اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا ملدة حمددة‪ .‬تـد اىهتاء ُذٍ املدة ًـود نوـمل من خدًد‪.‬‬
‫‪ُ milliseconds‬و املدة اميت سُذوكف فهيا اكئن امـ ‪ Thread‬ابمـ ‪.Milli Seconds‬‬
‫‪3‬‬
‫مفث ًال اذا وضـت ‪ 1000‬ماكن ُذا امحارامِرت‪ ,‬سؤدي ذكل اىل اًلاف اكئن امـ ‪ Thread‬ؾن امخيفِذ مثاهَة واحدة‪.‬‬
‫حريم االس خثٌاء ‪ IllegalThreadStateException‬يف حال مت اؾعاءُا كمية أضغر من ‪.0‬‬
‫حريم االس خثٌاء ‪ InterruptedException‬يف حال مت اًلاف اكئن امـ ‪ Thread‬يف فرتة اهخؼارٍ‪.‬‬
‫)(‪public static void suspend‬‬
‫ثوكف ثيفِذ أوامر اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا ملدة غري حمددة‪ ,‬حبَر ال ميكٌَ امـودة نوـمل من خدًد اال اذا كام‬
‫‪ 4‬ابس خدؿاء ادلاةل )(‪resume‬تـدُا‪.‬‬
‫حريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة امخـدًل ؿىل اكئن‬
‫امـ ‪ Thread‬املخوكف ؾن امـمل‪.‬‬
‫)(‪public static void resume‬‬
‫حمكل ثيفِذ أوامر اكئن امـ ‪ Thread‬تـد أن اكن كد ثوكف ؾن ثيفِذُا ثسخة ادلاةل )(‪.suspend‬‬
‫‪5‬‬
‫حريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة امخـدًل ؿىل اكئن‬
‫امـ ‪ Thread‬املخوكف ؾن امـمل‪.‬‬
‫)(‪public static void stop‬‬
‫‪6‬‬
‫ثوكف اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا‪ ,‬حبَر ال ميكٌَ امـودة نوـمل من خدًد‪.‬‬

‫‪Autumn/2017‬‬ ‫‪Prepared by Amer_GADOWA‬‬ ‫‪Programming: OOP_ Java2‬‬


‫حريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة امخـدًل ؿىل اكئن‬
‫امـ ‪ Thread‬املخوكف ؾن امـمل‪.‬‬
‫)(‪public final void join‬‬
‫جتـل امربانمج ال ًخاتؽ ثيفِذ الوامر املوحودة يف ادلاةل )(‪ main‬حىت ًمت ثيفِذ مجَؽ الوامر املوحودة يف اكئن امـ ‪ Thread‬اذلي‬
‫كام ابس خدؿاهئا‪ ,‬أي حىت ثطحح حامخَ جساوي ‪.TERMINATED‬‬
‫‪ 7‬مالحؼة‪ :‬ال هيمِا اذا اكن ًوخد أنرث من اكئن ‪ Thread‬أخر شغال يف هفس اموكت‪ .‬مبـىن أهَ اذا اكن ُياك‬
‫اكئن ‪ Thread‬أخر شغال فاهَ سُس متر يف امـمل ثشلك ظحَـي‪ ,‬مكن ابيق الوامر املوحودة يف ادلاةل )(‪ main‬من ًمت ثيفِذمه‬
‫حىت ثيفِذ مجَؽ أوامر اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا‪.‬‬
‫حريم االس خثٌاء ‪ InterruptedException‬يف حال مت اًلاف اكئن امـ ‪ Thread‬من كدل أي اكئن ‪ Thread‬أخر‪.‬‬
‫)(‪public void interrupt‬‬
‫حرسل اشارة اىل امـ ‪ JVM‬مللاظـة معل اكئن امـ ‪ Thread‬يف حال اكن شغا ًال‪.‬‬
‫يف حال اكن اكئن امـ ‪ Thread‬مذوكف ًا ملدة ثسخة احدى ادلوال مثل )(‪ join‬و )(‪ wait‬و )(‪ ,sleep‬فاهنا ال ثؤثر ؿوََ أتد ًا‪.‬‬
‫يف حال اكن اكئن امـ ‪ Thread‬غري شغال تـد ال ثؤثر ؿوََ أًض ًا‪.‬‬
‫‪8‬‬
‫حريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة امخـدًل ؿىل اكئن‬
‫امـ ‪ Thread‬املخوكف ؾن امـمل‪.‬‬
‫مـوومة‪ :‬كد حتخاج ُذٍ ادلاةل يف حال نيت حرًد اًلاف اكئن امـ ‪ Thread‬رًامث ثًهتيي من ثيفِذ أوامر أخرى أنرث أمهَة‪ ,‬يف حال‬
‫جنحت ُذٍ ادلاةل حكون مدة اًلاف اكئن امـ ‪ Thread‬ؾن امـمل غري حمددة‪.‬‬
‫)(‪public boolean isInterrupted‬‬
‫جس خخدم ملـرفة اذا اكن اكئن امـ ‪ Thread‬كد ثوكف ثسخة اس خدؿاء ادلاةل )(‪ interrupt‬أم ال‪.‬‬
‫‪9‬‬
‫حرحؽ ‪ true‬يف حال مت اس خدؿاء ادلاةل )(‪ interrupt‬كدوِا و كد متكٌت ُذٍ الخرية من ملاظـة اكئن امـ ‪ Thread‬أزياء ثيفِذ‬
‫الوامر‪ .‬غري ذكل حرحؽ ‪.false‬‬
‫)(‪public long getId‬‬
‫‪11‬‬
‫حرحؽ رمق امـ ‪ ID‬اذلي مت اؾعاءٍ ماكئن امـ ‪.Thread‬‬
‫)(‪public Thread.State getState‬‬
‫‪11‬‬
‫حرحؽ اكئن هوؿَ ‪Thread.State‬ميثل حاةل اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا‪.‬‬
‫)(‪public final boolean isAlive‬‬
‫‪12‬‬
‫حرحؽ ‪ true‬يف حال مل ٍكن اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا يف احلاةل ‪ .TERMINATED‬غري ذكل حرحؽ ‪.false‬‬
‫)(‪public String toString‬‬ ‫‪13‬‬

‫‪Autumn/2017‬‬ ‫‪Prepared by Amer_GADOWA‬‬ ‫‪Programming: OOP_ Java2‬‬


‫حرحؽ هص ميثل مـوومات اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا‪ .‬املـوومات ؾحارة ؾن ( ‪.) Name - Priority - Group‬‬
‫‪ُ :Name‬و امس اكئن امـ ‪ُ :Priority .Thread‬و أومَة امخفِذ املـعاة ماكئن امـ ‪.Thread‬‬
‫‪ُ :Group‬و امس اجملموؿة اميت ًًمتي مِا اكئن امـ ‪.Thread‬‬ ‫‪‬‬

‫)‪public final void setName(String name‬‬


‫‪ 14‬جس خخدم الؾعاء امس ماكئن امـ ‪.Thread‬‬
‫حريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة ثغَريُا‪.‬‬
‫)(‪public final String getName‬‬
‫‪15‬‬
‫حرحؽ امس اكئن امـ ‪.Thread‬‬
‫)‪public final int setPriority(int newPriority‬‬
‫جس خخدم مخغَري كمية امـ ‪ Priority‬املـعاة ماكئن امـ ‪.Thread‬‬
‫امـ ‪ Priority‬اميت ثـعى افرتاضَ ًا لي ‪ Thread‬خدًد يه ‪ ,5‬و يه جساوي كمية امثاتت ‪.NORM_PRIORITY‬‬
‫‪ 16‬أؿال ‪ Priority‬ميكن اؾعاءُا نوـ ‪ Thread‬يه ‪ ,10‬و يه جساوي كمية امثاتت ‪.MAX_PRIORITY‬‬ ‫‪‬‬
‫‪ ‬أدىن ‪ Priority‬ميكن اؾعاءُا نوـ ‪ Thread‬يه ‪ ,1‬و يه جساوي كمية امثاتت ‪.MIN_PRIORITY‬‬
‫حريم االس خثٌاء ‪ IllegalArgumentException‬يف حال اكهت املمية اميت مقت جمترٍرُا أضغر من ‪ 1‬أو أنرب من ‪.10‬‬
‫و حريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة ثغَريُا‪.‬‬
‫)(‪public final int getPriority‬‬
‫‪17‬‬
‫حرحؽ رمق تني ‪ 1‬و ‪ 10‬ؾحارة ؾن كمية امـ ‪ Priority‬اميت ميوكِا اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا‪.‬‬
‫)‪public final void setDaemon(boolean on‬‬
‫جس خخدم مخحوًل اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا اىل ‪.Daemon Thread‬‬
‫يف حال مقت جمترٍر املمية ‪ true‬مِا نـ ‪ ,Argument‬سُمت مـامةل اكئن امـ ‪ Thread‬نــ ‪Daemon Thread‬‬
‫‪18‬‬
‫غري ذكل سُمت اؾخحارٍ ‪ Thread‬ؿادي‪.‬‬
‫حريم االس خثٌاء ‪ IllegalArgumentException‬يف حال اكن اكئن امـ ‪ Thread‬شغاال أزياء اس خدؿاءُا‪.‬‬
‫و حريم االس خثٌاء ‪ SecurityException‬يف حال اكن اكئن امـ ‪ Thread‬احلايل ال ميكل ضالحِة ثغَريُا‪.‬‬
‫)(‪public final boolean isDaemon‬‬
‫‪ 19‬جس خخدم ملـرفة اذا اكن اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا ُو ‪ Daemon Thread‬أم ال‪.‬‬
‫حرحؽ ‪ true‬اذا اكن نذكل‪ ,‬غري ذكل حرحؽ ‪.false‬‬

‫‪Autumn/2017‬‬ ‫‪Prepared by Amer_GADOWA‬‬ ‫‪Programming: OOP_ Java2‬‬


‫)(‪public static int activeCount‬‬
‫جس خخدم ملـرفة ؿدد امـ ‪ threads‬اذلٍن ًـموون يف امربانمج حلؼة اس خدؿاهئا‪.‬‬
‫‪21‬‬
‫جس خخدم فلط يف حاةل امـ ‪.Debugging‬‬
‫يف حال مل ٍكن ُياك أي ‪ Thread‬شغال أو مـرف يف امربانمج‪ ,‬فاهنا أًض ًا حرحؽ ‪ 1‬و اذلي ُو ؾحارة ؾن امربانمج هفسَ‪.‬‬
‫)(‪public static Thread currentThread‬‬
‫‪21‬‬
‫حرحؽ اكئن هوؿَ ‪ٌ Thread‬شري اىل اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا‪.‬‬
‫)(‪public final ThreadGroup getThreadGroup‬‬
‫‪ 22‬حرحؽ اكئن هوؿَ ‪ ThreadGroup‬ميثل اجملموؿة اميت ًًمتي اههيا اكئن امـ ‪ Thread‬اذلي كام ابس خدؿاهئا‪.‬‬
‫حرحؽ ‪ true‬يف حال اكهت حاةل اكئن امـ ‪ Thread‬جساوي ‪.TERMINATED‬‬

‫املشلكة اموحِدة اميت كد ثواهجيا ؾيد اوشاء امـ ‪ Thread‬من خالل ورازة امالكس ‪ Thread‬يه أن امالكس ًطحح غري كادر ؿىل أن‬
‫ٍرث من الكس أخر‪ ,‬لهَ ال ميكن نوالكس أن ًفـل ‪ extends‬لنرث من الكس‪ .‬حلل مشلكة ثـدد امورازة‪ ,‬ميكن حـل امالكس‬
‫ًعحق االهرتفُس ‪ Runnable‬و تداخهل هلوم ابوشاء اكئن من امالكس ‪ Thread‬و ىرتط تَ‪.‬‬
‫" فلط‪.‬‬ ‫االهرتفُس ‪ Runnable‬ميكل ادلاةل ")(‪public void run‬‬

‫امالكس اذلي ًعحق االهرتفُس ‪ Runnable‬جية أن ًفـل مِا ‪ ,Override‬و ًضؽ تداخوِا الوامر اميت ٍرًدُا أن ثدٌفذ ؾيد جشغَل‬
‫اكئن امـ ‪ .Thread‬مخيفِذ أوامر ادلاةل )(‪ run‬ثشلك مذوازي مؽ ابيق الوامر املوحودة يف امربانمج‪ ,‬ؿوَم اس خدؿاء ادلاةل )(‪ start‬من‬
‫اكئن امـ ‪ Thread‬املرثحط ابمالكس اذلي ًعحق االهرتفُس ‪ ,Runnable‬و اذلي ميكل ادلاةل )(‪.run‬‬

‫ثذهر‪ :‬اس خدؿاء ادلاةل )(‪ run‬ثشلك مدارش ال جيـوِا ثـمل ثشلك مذوازي مؽ امربانمج‪.‬‬

‫أمه هلعة يف ثعحَق االهرتفُس ‪ Runnable‬يه أهَ جيـكل كادر ًا ؿىل تياء الكس ًـمل نـ ‪ Thread‬و تيفس اموكت ٍرث من الكس‬
‫أخر‪.‬‬

‫‪Autumn/2017‬‬ ‫‪Prepared by Amer_GADOWA‬‬ ‫‪Programming: OOP_ Java2‬‬


public class MyRunnable extends AnOtherClass implements Runnable {
@Override
public void run(){}}

‫) و ًـمل ثشلك مذوازي‬GUI( ‫" همم خد ًا و ثمت احلاخة امََ ؾيد تياء ثعحَق فَِ واهجة مس خخدم‬Runnable interface"
‫ من الكس حمدد مثل‬extends ‫ ؿوَم أن ثفـل‬GUI َِ‫ لهَ ؾيد تياء ثعحَق ف‬.‫مؽ ابيق الوامر املوحودة يف امربانمج‬
.Runnable ‫ مالهرتفُس‬implements ‫ و ثفـل‬, JFrame ‫امالكس‬

Autumn/2017 Prepared by Amer_GADOWA Programming: OOP_ Java2

You might also like