Əsas Fərq – İşlənə bilən və Mövzu
İcrada olan proqram proses kimi tanınır. Proses bir neçə alt prosesə bölünə bilər. Məsələn, Microsoft Word bir prosesdir. Eyni zamanda orfoqrafik səhvləri və qrammatikanı yoxlayır. Bu bir alt prosesdir. Bu alt proseslər mövzular kimi tanınır. Multithreading eyni vaxtda bir neçə ipin icrası prosesidir. Yivli proqramlar müxtəlif proqramlaşdırma dillərindən istifadə etməklə qurula bilər. Runnable və Thread Java proqramlaşdırması ilə əlaqələndirilir. Java-da Runnable interfeysini tətbiq etməklə və ya Thread sinfini genişləndirməklə mövzu yaratmaq üçün iki üsul var. Runnable proqramını həyata keçirərkən, bir çox mövzu eyni mövzu obyektini paylaşa bilər, halbuki Extending Thread sinfində, hər bir mövzu onunla əlaqəli unikal obyektə malikdir. Runnable və Thread arasındakı əsas fərq budur.
Runnable nədir?
Mövzu bəzi dövlətlərdən keçir. "Yeni" iplik həyat dövrünün başlanğıcıdır. start() metodu yeni mövzuya zəng etdikdən sonra o, işlək olur. Mövzu planlaşdırıcı ipi seçərsə, o, işləyən vəziyyətə keçir. Mövzu bir tapşırığı yerinə yetirmək üçün başqa bir başlığı gözləyirsə, mövzu vəziyyəti gözləyir. Başlıq işi tamamladıqdan sonra son vəziyyətinə keçir.
İplik Runnable interfeysindən istifadə etməklə həyata keçirilə bilər. Aşağıdakı proqrama baxın.
Şəkil 01: İşlənə bilən interfeysdən istifadə edərək mövzu yaratmaq üçün Java proqramı
Yuxarıdakı proqrama əsasən, Runnable Demo sinfi Runnable interfeysini həyata keçirir. run() metodu Runnable interfeysini tətbiq edən sinif daxilindədir. Bu iplik üçün giriş nöqtəsidir. Məntiq run() metodundadır. Əsas proqramda Runnable Demo sinfindən yaradılmış obyekti təyin etməklə mövzu yaradılır. t1-dir. start() metodu t1 istifadə edərək çağırılır.
Aşağıdakı proqrama baxın.
Şəkil 02: Runnable interfeysini həyata keçirərək dövrəni yerinə yetirmək üçün ip yaratmaq üçün Java proqramı
Yuxarıdakı nümunəyə əsasən, Runnable Demo sinfi Runnable interfeysini həyata keçirir. Mövzudan istifadə edərək icra etmək üçün məntiq run() metodunda yazılır. Əsas proqramda Runnable Demo sinfindən yaradılmış obyekti təyin etməklə mövzu yaradılır.t1-dir. Sonra t1 istifadə edərək start() metodu çağırılır.
Mövzu nədir?
Mövzu yaratmağın digər üsulu Thread sinfini genişləndirməkdir. Üç addımdan ibarətdir. Birincisi, sinfi Thread sinfini genişləndirən kimi elan etməkdir. Daha sonra run() metodu yazılmalıdır. Bu ipin yerinə yetirməli olduğu addımların ardıcıllığına malikdir. Nəhayət, mövzu obyekti yaradılır və ipin icrasına başlamaq üçün start() metodu çağırılır. Aşağıdakı proqrama baxın.
Şəkil 03: Thread sinifini genişləndirən Java proqramı
Yuxarıdakı proqrama əsasən MyThread sinfi Thread sinfini genişləndirir. Bu, qaçış metodunu ləğv edir. run() metodu iplə icra ediləcək məntiqi ehtiva edir. Bu ipə giriş nöqtəsidir. Sonra iplik obyekti yaradılır. Bu iplik 1. Mövzu start() metodundan istifadə edərək başlayır. O, run() metoduna çağırış yerinə yetirəcək.
Thread sinfini genişləndirən iki sinfin nümunə proqramı aşağıdakı kimidir.
Şəkil 04: Thread sinifini genişləndirən iki sinifli Java proqramı
Yuxarıdakı proqrama əsasən, həm A, həm də B sinifləri Thread sinifini genişləndirir. Hər iki sinifdə run() metodunun tətbiqi var. Əsas mövzu main() metodunu icra edəndir. Əsas mövzu ölməzdən əvvəl, thread1 və thread2 yaradır və başlayır. Əsas ip əsas metodun sonuna çatdıqda, üç ip paralel olaraq işləyir. Mövzuların çıxış verdiyi xüsusi bir sıra yoxdur. Mövzu işə salındıqdan sonra onların yerinə yetirəcəkləri sıraya qərar vermək çətindir. Onlar müstəqil işləyirlər.
Runnable və Thread arasında hansı oxşarlıqlar var?
Hər ikisi Java-da mövzu yaratmaq üçün istifadə edir
Runnable və Thread Arasındakı Fərq Nədir?
Runnable vs Thread |
|
Runnable Java-da bir çox başlığın eyni mövzu obyektini paylaşmasına imkan verən ip yaratmaq üçün interfeysdir. | Mövzu Java-da hər bir mövzu ilə əlaqəli unikal obyektin olduğu mövzu yaratmaq üçün sinifdir. |
Yaddaş | |
Runnable-da çoxlu mövzu eyni obyekti paylaşır, ona görə də daha az yaddaş tələb olunur. | Thread sinfində hər ip unikal obyekt yaradır, buna görə də daha çox yaddaş tələb olunur. |
Genişləndirmək bacarığı | |
Runnable interfeysini tətbiq etdikdən sonra o, sinfi genişləndirə bilər. | Birdən çox miras Java-da dəstəklənmir. Thread sinfini genişləndirdikdən sonra o, başqa heç bir sinfi genişləndirə bilməz. |
Kodun saxlanılması | |
İşlənə bilən interfeys kodu daha davamlı edir. | Thread sinfində baxım çox vaxt aparır. |
Xülasə – İşlənə bilən və Mövzu
Proses eyni vaxtda birdən çox tapşırığı yerinə yetirmək üçün bir neçə alt prosesə bölünür. Bu alt proseslər mövzular kimi tanınır. Mövzunun instantiasiyası Runnable interfeysini tətbiq etməklə və ya Thread Sinifini genişləndirməklə edilə bilər. Thread sinfini genişləndirmək asandır, lakin bu, daha yaxşı Obyekt yönümlü Proqramlaşdırma təcrübəsi deyil. Runnable proqramını həyata keçirərkən, Thread sinfini genişləndirərkən hər bir ipin onunla əlaqəli unikal obyekti olduğu halda, bir çox mövzu eyni mövzu obyektini paylaşa bilər. Runnable və Thread arasındakı fərq budur. Thread sinfində çoxlu obyekt yaradılması daha çox yaddaş sərf edə bilər.
Runnable vs Thread PDF faylını endirin
Bu məqalənin PDF versiyasını yükləyə və sitat qeydinə əsasən onu oflayn məqsədlər üçün istifadə edə bilərsiniz. Lütfən, PDF versiyasını buradan yükləyin Runnable və Thread Arasındakı Fərq