logo

Java'da Konu Kavramı

Tanıtmadan önce iplik konsepti birden fazla görevi paralel olarak yürütemedik. Bu bir dezavantajdı ve bu dezavantajı ortadan kaldırmak için, Konu Konsepti tanıtılmıştı.

A İplik çok hafif bir süreçtir veya bir programın birden fazla görevi aynı anda çalıştırarak daha verimli çalışmasını sağlayan sürecin en küçük kısmı diyebiliriz.

ah

Arka planda karmaşık görevleri gerçekleştirmek için Java'da iş parçacığı kavramı . Tüm görevler ana programı etkilemeden yürütülür. Bir program veya işlemde, tüm iş parçacıklarının yürütme için kendi ayrı yolları vardır, dolayısıyla bir işlemin her iş parçacığı bağımsızdır.

Java'da Konu Kavramı

Kullanmanın bir başka faydası iplik bir iş parçacığı yürütme sırasında bir istisna veya hata alırsa, bu durum diğer iş parçacıklarının yürütülmesini etkilemez. Tüm iş parçacıkları ortak bir belleği paylaşır ve kendi yığınına, yerel değişkenlerine ve program sayacına sahiptir. Birden fazla iş parçacığının aynı anda paralel olarak yürütülmesine bu işlem denir. Çoklu iş parçacığı .

Basit bir şekilde, bir Konu:

  • Tek bir süreç içerisinde birden fazla aktiviteyi gerçekleştirebildiğimiz özellik.
  • Hafif süreç.
  • Yürütülen ifadeler dizisi.
  • Yöntem çağrılarının iç içe dizisi.

Konu Modeli

Tıpkı bir süreç gibi, bir iş parçacığı da çeşitli durumlarda bulunur. Bu durumlar aşağıdaki gibidir:

Java'da Konu Kavramı

1) Yeni (Çalışmaya hazır)

Bir iş parçacığı var Yeni CPU zamanı geldiğinde.

2) Koşmak

Bir iş parçacığı var a Koşu ne zaman yürütüldüğünü belirtin.

3) Askıya alındı

İçinde bir iplik var Askıya alınmış geçici olarak etkin olmadığı veya yürütülmekte olduğu durumu belirtir.

4) Engellendi

İçinde bir iplik var Engellendi kaynakları beklediğini belirtir.

5) Feshedildi

tam bir form

Bir iş parçacığı herhangi bir zamanda bu duruma gelir ve yürütülmesini anında durdurur.

Konu Oluşturma

Bir iş parçacığı, 'oluşturularak veya uygulanarak' oluşturulur. Çalıştırılabilir Arayüz veya genişleterek Konu sınıfı . Bunlar bir iş parçacığı oluşturabilmemizin yalnızca iki yoludur.

Konu oluşturmanın bu iki yönteminin ayrıntılarına bakalım:

Konu Sınıfı

A Konu sınıfı bir iş parçacığı üzerinde çeşitli işlemler gerçekleştirmemize izin veren çeşitli yöntemlere ve yapıcılara sahiptir. Thread sınıfı şunları genişletir: Nesne sınıf. Nesne sınıf bunu uygular Çalıştırılabilir arayüz. İş parçacığı sınıfı, çeşitli işlemleri gerçekleştirmek için kullanılan aşağıdaki yapıcılara sahiptir.

    İplik() Konu(Çalıştırılabilir, Dize adı) Konu(Çalıştırılabilir hedef) Thread(ThreadGroup grubu, Çalıştırılabilir hedef, Dize adı) Thread(ThreadGroup grubu, Çalıştırılabilir hedef) Konu(ThreadGroup grubu, Dize adı) Thread(ThreadGroup grubu, Çalıştırılabilir hedef, Dize adı, uzun stackSize)

Çalıştırılabilir Arayüz(run() yöntemi)

Runnable arayüzünün, örneklerinin bir iş parçacığı tarafından yürütülmesi amaçlanan sınıf tarafından uygulanması gerekir. Çalıştırılabilir arayüz bize şunları sağlar: koşmak() iş parçacığı için bir eylem gerçekleştirme yöntemi.

start() yöntemi

Bu yöntem yeni oluşturduğumuz bir iş parçacığını başlatmak için kullanılır. Yeni bir çağrı yığınıyla yeni bir iş parçacığı başlatır. Çalıştırdıktan sonra başlangıç() yönteminde, iş parçacığı durumu Yeni'den Çalıştırılabilir'e değiştirir. Şunu yürütür: run() yöntemi iş parçacığı onu yürütmek için doğru zamanı aldığında.

Nasıl oluşturabileceğimizi anlamak için bir örnek alalım. Java Thread sınıfını genişleterek thread:

KonuÖrneği1.java

java yakalamayı dene
 // Implementing runnable interface by extending Thread class public class ThreadExample1 extends Thread { // run() method to perform action for thread. public void run() { int a= 10; int b=12; int result = a+b; System.out.println('Thread started running..'); System.out.println('Sum of two numbers is: '+ result); } public static void main( String args[] ) { // Creating instance of the class extend Thread class ThreadExample1 t1 = new ThreadExample1(); //calling start method to execute the run() method of the Thread class t1.start(); } } 

Çıktı:

Java'da Konu Kavramı

Çalıştırılabilir arayüzü uygulayarak iş parçacığı oluşturma

Java'da çalıştırılabilir arayüzü uygulayarak da bir iş parçacığı oluşturabiliriz. Çalıştırılabilir arayüz bize hem run() yöntemini hem de start() yöntemini sağlar.

Çalıştırılabilir arayüzü kullanarak iş parçacığını nasıl oluşturabileceğimizi, başlatabileceğimizi ve çalıştırabileceğimizi anlamak için bir örnek alalım.

KonuÖrneği2.java

 class NewThread implements Runnable { String name; Thread thread; NewThread (String name){ this.name = name; thread = new Thread(this, name); System.out.println( 'A New thread: ' + thread+ 'is created
' ); thread.start(); } public void run() { try { for(int j = 5; j > 0; j--) { System.out.println(name + ': ' + j); Thread.sleep(1000); } }catch (InterruptedException e) { System.out.println(name + ' thread Interrupted'); } System.out.println(name + ' thread exiting.'); } } class ThreadExample2 { public static void main(String args[]) { new NewThread('1st'); new NewThread('2nd'); new NewThread('3rd'); try { Thread.sleep(8000); } catch (InterruptedException excetion) { System.out.println('Inturruption occurs in Main Thread'); } System.out.println('We are exiting from Main Thread'); } } 

Çıktı:

Java'da Konu Kavramı

Yukarıdaki örnekte, çalıştırılabilir arayüzü uygulayarak Çoklu İş Parçacığı işlemini gerçekleştiriyoruz. Çoklu iş parçacığı hakkında daha fazla bilgi edinmek için, buraya tıklayın .