Bu Kategoriye İçerik Girin veya Soru Sorun

Kategori İçi Sözlük

Bu Sayfayı Paylaş:

synchronized

Tanım: Bir methodu veya bir kod parçasını thread'lerin aynı anda çağıramamalarına , sırayla işlemelerinin sağlayan ifade

CommonJ

Tanım: Bir JSR 237 (Work Manager for Application Servers) standartının implementation'u.

ThreadLocal

Tanım: Bir thread içinde , thread'in her yerinden erişilebilen , thread-safe bir değişken yaratmak (synchorized tanımlaması yapılmadan) için kullanılan sınıf. Değişken final static yaratılmalıdır ve ilk kullanımda değer yaratılıp döndürülmelidir. ThreadLocal değişkenleri sadece thread instance'ına özeldir ve her thread nesnesinin ThreadLocal değişkeni farklı olur (Thread-safe'dir). Bu değişkenlere Thread içinde olan tüm sınıflarda erişebilmektedirler. Bu özellikle Thread ile farklı context'ler arasında veri alış-verişi de yapılmış olur.

ThreadLocalRandom

Tanım: Thread safe , rastgele bir sayı üretmek için kullanılan sınıf. ThreadLocalRandom.current().nextInt(100, 1000) şeklinde 100 ile 1000 arasında rastgele bir sayı üretilebilir

Runnable

Tanım: Bir Thread tarafından çalıştırılabilir bir görev yapmak için kullanılan bir interface. run() şeklinde tek bir yöntemi vardır.

Java'da Thread Yapılması

Java'da en basit bir şekilde bir Thread yaratılmasıJava'da aşağıdaki şekilde bir Thread sınıfı oluşturabilirsiniz :
public class TestThread extend Thread{
        public void run(){
                // Thread çalıştırıldığında buradaki kod çalışacak
         }
}
Bu thread aşağıdaki kod ile başlatılabilir :
TestThread t=new TestThread();
t.start();

Java'da Sürekli Çalışacak Thread Yapmak

Java'da sürekli çalışacak (program ile kapatılma veya durdurulmadığı sürece devam edecek) bir Thread yaratılması Java'da sürekli çalışacak (program ile kapatılma veya durdurulmadığı sürece devam edecek) bir Thread aşağıdaki gibi yaratılabilir :
public class TestThread extend Thread{	
	public void run(){
		while(true){
			// Thread kodu burada
			try {
				Thread.sleep(1000); // Bir saniye bekletebiliriz. 
			} catch (InterruptedException e){}
		}		
	}
}
Aşağıdaki kod ile çalıştırılabilir :
TestThread t=new TestThread();
t.start();
Bu thread hiç durmaz ve sürekli tekrarlanır. Thread programlama ile farklı şekilde (Thread'i ne yaptığına göre değişebilir) durdurlabilir. Aşağıdaki gibi durdurulabilir :
t.interrupt();

ThreadLocal Kullanımında Memory Dolma Sorununa Dikkat Edilmelidir.

ThreadLocal değişkenler normalde Thread kaldırılınca hafızadan da kaldırılmaktadırlar. Ancak eğer Thread Pool kullanılıyor ise Thread'ler hafızadan kaldırmak yerine havuzda saklanmaya devam ediliyor olabilir. Bu durumda ThreadLocal değişkenlerde hafızada kalacak ve hafıza sorununa neden olabilcektir. Bu nedenle Thread kullanımı sona erdiğinde bu değişkenleri de temizlemek gerekir.



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir