Java Thread

Tanım ;

Thread (iş parçacığı) kullanımı, birden fazla işlemin tek bir akışı paylaşarak neredeyse eşzamanlı bir şekilde gerçekleşmesini sağlar.

Thread içerisinde gerçekleştirilecek işlemler öncelikle Runnable Interface'ten üretilmiş herhangi bir sınıfta tanımlanabilir.

Runnable içerisindeki run metodu, içinde yapılması gereken işlemler belirtilir.


New; Yaratmis oldugumuz thread’in hazir beklemesi durumudur.

Runnable; Yaratmis oldugumuz thread’in artik calisir duruma gelmesidir.

Blocked; Thread bloklanarak, monitor lock durumu icin bekletilmektedir. Blok tekrar acildiginda yeniden runnable durumuna gececektir.

Waiting; Bir thread’in suresiz olarak diger thread’lerin yapmis oldugu isleri tamamlayabilmesi icin o thread’in bekledigi durumdur.

Timed Waiting; Bir thread’in diger thread’in isini tamamlayabilmesi icin sadece belirli bir sure bekledigi durumdur.

Terminated; Thread’lerin tum islerinin tamamlandigi ve islemlerin sonlandigi durumdur.



Thread sınıfı Runnable Interface'nin içersindeki run() methodunu çalıştırır.



Thread Türleri :

  1. Single Threading :Aynı anda tek thread çalıştırma işlemidir. Threading’i desteklemeyen işlemciler tarafından kullanılan yöntemdir. Uygulama multithread olarak hazırlansa dahi ana thread üzerinden işlemleri çalıştıracaktır. Günümüzde bu teknolojide işlemciler kalmamıştır. (MS-DOS)
  2. Multi Threading : Aynı anda birden fazla thread çalıştırma işlemidir. Az önce verdiğimiz örnekteki gibi ve çok daha gelişmiş yapılar bu işlem için örnek verilebilir. Günümüz işlemci ve yazılım mimarisi bu sistem üzerine kurulmuştur. (Solaris, UNIX, Windows)



Giriş ;

package KodSozluk;

public class KodSozluk{

	public static void main(String[]args){

		isParcacigi thread1 = new isParcacigi();
		isParcacigi thread2 = new isParcacigi();
		
		thread1.setName("İş Parçacığı 1");         // Thread nesnelerine isim veriyoruz.
		thread2.setName("İş Parçacığı 2");
		
		thread1.start();                           // Thread nesnelerini başlatıyoruz.
		thread2.start();

	}
}


class isParcacigi extends Thread{
	
	public void run(){
		
		for(int i=0;i<5;i++){	
			
			System.out.println("Şuan çalışan Thread = "+Thread.currentThread().getName());
			
		}	
	}	
}


Çıkış ;

Şuan çalışan Thread = İş Parçacığı 2     // çalışma sırası
Şuan çalışan Thread = İş Parçacığı 2      // Threadler aynı anda çalıştığı için sıralaması farklı olabilir. Biri bitmeden diğeri çalışabilir.
Şuan çalışan Thread = İş Parçacığı 2
Şuan çalışan Thread = İş Parçacığı 1
Şuan çalışan Thread = İş Parçacığı 1
Şuan çalışan Thread = İş Parçacığı 1
Şuan çalışan Thread = İş Parçacığı 1
Şuan çalışan Thread = İş Parçacığı 1
Şuan çalışan Thread = İş Parçacığı 2
Şuan çalışan Thread = İş Parçacığı 2

Yorumlar

Bu gönderi için yorum yapılmadı.