-
Android Eğitimlerine Başlarken...
-
Java Geliştirme Paketi'nin (JDK) Kurulumu
-
Eclipse Geliştirme Ortamının Kurulması
-
Bir Java Programının IDE Ortamında Çalıştırılması
-
Java Projesinin Temelleri
-
Java Yazım Kuralları ve Önerileri
-
Java Dilinde Kütüphaneler
-
Java Dilinde İfadeler ve İşlem Operatörleri
-
Java'da Kontrol Yapıları
-
Java'da Kontrol Yapıları Giriş
-
if Deyimi
-
if Deyimiyle İlgili Problemler
-
İç içe if Deyimleri
-
Karşılaştırma İşlemleri
-
if-else-if Basamak Yapısı
-
Soru İşareti Operatörü
-
switch / case Yapısı
-
while Döngüsü
-
do ... while Döngüsü
-
for Döngüsü
-
İç İçe Döngüler
-
İç İçe for Döngüleri İçin Örnekler
-
break Deyimi
-
continue Deyimi
-
Java'da Kontrol Yapıları Giriş
-
Java'da String Metodları
-
Java'da Tarih İşlemleri
-
Diziler
-
Olağan Dışı Durumların Değerlendirilmesi
-
Java'da Dosya İşlemleri
-
Nesne Yönelimli Programlama
-
Algoritmaya Giriş
-
Java'da Veri Saklamaya Yardımcı Kütüphaneler
-
Threadler
Bir üst ders içeriğinde anlatmış olduğumuz theradlerin çalışma önceliklerini belirlemek için setPriority metodunu kullanılmaktadır. Aşağıdaki örnekte thread3 en yüksek öneme sahipken diğeri daha az önemli olarak tanımlanmıştır.
public class ThreadLesson {
public static void main(String[] args) {
Thread thread1 = new Thread(new MyThread("thread1", 6));
Thread thread2 = new Thread(new MyThread("thread2", 5));
Thread thread3 = new Thread(new MyThread("thread3", 4));
thread3.setPriority(Thread.MAX_PRIORITY);
thread1.setPriority(Thread.MIN_PRIORITY);
thread2.setPriority(Thread.MIN_PRIORITY);
thread1.start();
thread2.start();
thread3.start();
}
}
Bu örnegimizde setPriority(Thread.MAX_PRIORITY) koduyla birlikte threadimizin en öncelikli çalışmasını sağlarken, setPriority(Thread.MIN_PRIORITY) koduyla threadimizin en düşük öncelikle çalışmasını sağladık.
İşlemin çıktısına baktığımızda ise thread1.start() kod da daha önce olmasına rağmen thread3 önceliklendirildiği için işlemini ilk bitirir.
thread1 : 0
thread2 : 0
thread3 : 0
thread1 : 1
thread3 : 1
thread2 : 1
thread3 : 2
thread1 : 2
thread3 : 3
thread2 : 2
thread1 : 3
thread2 : 3
thread1 : 4
thread2 : 4
thread1 : 5
Bu şekilde dilediğimiz kadar iş parçası tanımlayıp eşzamanlı olarak istediğimiz kadar işlem yapabilmekteyiz. Ancak unutulmaması gereken, oluşturulan her Thread'in sistemin belleğinden ve işlemciden bir pay aldığıdır. Aşırı sayıda Thread oluşturulması mikroişlemcinin işlemler arası geçiş yapması gerektiğinden ciddi performans kayıplarına yol açacaktır. Bu işlemleri düzenlemek için bir sonraki eğitim içeriğinde Executor sınıfının özelliklerini kullanacağız.