Anahtar Farkı – Runnable vs Thread
Yürütülmekte olan bir program süreç olarak bilinir. Süreç birden fazla alt sürece bölünebilir. Örneğin, Microsoft Word bir süreçtir. Aynı zamanda yazım hatalarını ve dil bilgisini kontrol eder. Yani bir alt süreç. Bu alt işlemler iş parçacığı olarak bilinir. Çoklu iş parçacığı, aynı anda birden çok iş parçacığı yürütme işlemidir. Dişli uygulamalar farklı programlama dilleri kullanılarak oluşturulabilir. Runnable ve Thread, Java programlama ile ilişkilidir. Java'da Runnable arabirimi uygulayarak veya Thread sınıfını genişleterek bir iş parçacığı oluşturmanın iki yöntemi vardır. Runnable'ı uygularken, birçok iş parçacığı, Genişletme İş parçacığı sınıfındayken aynı iş parçacığı nesnesini paylaşabilir, her iş parçacığının kendisiyle ilişkilendirilmiş benzersiz bir nesnesi vardır. Runnable ve Thread arasındaki temel fark budur.
Çalıştırılabilir Nedir?
Bir iş parçacığı bazı durumlardan geçer. “Yeni”, iş parçacığı yaşam döngüsünün başlangıcıdır. start() yöntemi yeni bir iş parçacığını çağırdıktan sonra çalıştırılabilir hale gelir. İş parçacığı zamanlayıcı iş parçacığını seçerse, çalışma durumuna geçer. Bu iş parçacığı başka bir iş parçacığının bir görevi gerçekleştirmesini bekliyorsa, iş parçacığı durumu bekliyor. Thread işi tamamladıktan sonra sonlandırma durumuna geçer.
Bir iş parçacığı Runnable arabirimi kullanılarak uygulanabilir. Aşağıdaki programa bakın.
Şekil 01: Runnable arabirimini kullanarak bir iş parçacığı oluşturmak için Java Programı
Yukarıdaki programa göre Runnable Demo sınıfı Runnable arayüzünü uygular. run() yöntemi, Runnable arabirimini uygulayan sınıfın içindedir. İpliğin giriş noktasıdır. Mantık, run() yöntemindedir. Ana programda, Runnable Demo sınıfından örneklenen bir nesne tanımlanarak bir iş parçacığı oluşturulur. t1'dir. start() yöntemi t1. kullanılarak çağrılır.
Aşağıdaki programa bakın.
Şekil 02: Runnable arabirimini uygulayarak bir döngü yürütmek üzere bir iş parçacığı oluşturmak için Java programı
Yukarıdaki örneğe göre, Runnable Demo sınıfı Runnable arabirimini uygular. İş parçacığı kullanılarak yürütülecek mantık run() yönteminde yazılmıştır. Ana programda, Runnable Demo sınıfından örneklenen bir nesne tanımlanarak bir iş parçacığı oluşturulur.t1'dir. Ardından, start() yöntemi t1 kullanılarak çağrılır.
İplik nedir?
Bir iş parçacığı oluşturmanın diğer yöntemi, Thread sınıfını genişletmektir. Üç adımdan oluşur. Birincisi, sınıfı Thread sınıfını genişletiyor olarak ilan etmektir. Daha sonra run() metodu yazılmalıdır. İş parçacığının yürütmesi gereken adımların sırasına sahiptir. Son olarak, thread nesnesi oluşturulur ve thread'in yürütülmesini başlatmak için start() yöntemi çağrılır. Aşağıdaki programa bakın.
Şekil 03: Thread sınıfını genişleten Java programı
Yukarıdaki programa göre MyThread sınıfı Thread sınıfını genişletir. Çalıştırma yöntemini geçersiz kılar. run() yöntemi, iş parçacığı tarafından yürütülecek mantığı içerir. İş parçacığının giriş noktasıdır. Ardından thread nesnesi oluşturulur. Bu thread1'dir. İş parçacığı start() yöntemi kullanılarak başlatılır. run() yöntemine bir çağrı yürütecektir.
Thread sınıfını genişleten iki sınıfın örnek bir programı aşağıdaki gibidir.
Şekil 04: Thread sınıfını genişleten iki sınıflı Java programı
Yukarıdaki programa göre hem A sınıfı hem de B sınıfı Thread sınıfını genişletiyor. Her iki sınıf da run() yöntemini uygular. Ana iş parçacığı, main() yöntemini yürütür. Ana iş parçacığı ölmeden önce, thread1 ve thread2'yi oluşturur ve başlatır. Ana iş parçacığı ana yöntemin sonuna ulaştığında, üç iş parçacığı paralel olarak çalışır. İş parçacıklarının çıktı verdiği belirli bir sıra yoktur. İş parçacığı başlatıldığında, yürütecekleri sıraya karar vermek zordur. Bağımsız çalışırlar.
Runnable ve Thread Arasındaki Benzerlikler Nelerdir?
Her ikisi de Java'da bir iş parçacığı oluşturmak için kullanıyor
Runnable ve Thread Arasındaki Fark Nedir?
Runnable vs Thread |
|
Runnable, birçok iş parçacığının aynı iş parçacığı nesnesini paylaşmasına izin veren bir iş parçacığı oluşturmak için Java'da bir arabirimdir. | İş parçacığı, her iş parçacığının kendisiyle ilişkilendirilmiş benzersiz bir nesneye sahip olduğu bir iş parçacığı oluşturmak için Java'da bir sınıftır. |
Hafıza | |
Runnable'da birden çok iş parçacığı aynı nesneyi paylaşır, bu nedenle daha az bellek gerektirir. | Thread sınıfında, her iş parçacığı benzersiz bir nesne oluşturur, bu nedenle daha fazla bellek gerektirir. |
Genişletme Yeteneği | |
Runnable arayüzünü uyguladıktan sonra bir sınıfı genişletebilir. | Birden çok devralma Java'da desteklenmez. Thread sınıfını genişlettikten sonra başka bir sınıfı genişletemez. |
Kod Bakımı | |
Çalıştırılabilir arayüz, kodun daha sürdürülebilir olmasını sağlar. | Thread sınıfında bakım yapmak zaman alıcıdır. |
Özet – Runnable vs Thread
Bir işlem, aynı anda birden çok görevi gerçekleştirmek için birden çok alt işleme bölünür. Bu alt işlemler iş parçacığı olarak bilinir. Bir iş parçacığının başlatılması, Runnable arabirimi uygulanarak veya Thread Class'ı genişleterek yapılabilir. Thread sınıfını genişletmek kolaydır, ancak daha iyi bir Nesne Yönelimli Programlama uygulaması değildir. Runnable'ı uygularken, birçok iş parçacığı aynı iş parçacığı nesnesini paylaşabilirken, Thread sınıfını genişletirken her iş parçacığının kendisiyle ilişkilendirilmiş benzersiz bir nesnesi vardır. Runnable ve Thread arasındaki fark budur. Thread sınıfında çoklu nesne oluşturma daha fazla bellek tüketebilir.
Runnable vs Thread'ın PDF'sini indirin
Bu makalenin PDF sürümünü indirebilir ve alıntı notuna göre çevrimdışı amaçlarla kullanabilirsiniz. Lütfen PDF sürümünü buradan indirin Runnable ve Thread Arasındaki Fark