Java Thread ve Synchronized

-> Öncelikle günümüz bilgisayarlarımızın verileri sırayla işlediğini hatırlatalım. "Aynı anda 2 işlem yapmayan günümüz bilgisayarları, nasıl oluyor da aynı anda yapıyor gibi gözüküyor? " diye soracak olursan, sebebi çok hızlı bir şekilde işlem yapmasından dolayı. O kadar hızlı ki, biz işlemler arasında sırayı farkedemiyoruz. (ms. farkları mevcut).

-> Konuya gelecek olursak, programlamacılar bu işlemi (eş zamanlı programlamayı) Thread ile yapıyorlar. " Eş zamanlıdan kastın ne " diye sorarsan eğer, Windows bilgisayarlarımızda, bir yandan dosya taşıma işlemi yapmana, bir yandan internette dolaşmana ve bütün bunların dışında alt köşede çalışan saat işleminin çalışmasına olanak tanıyan bir programlama mevcut. Bu işlemlerin hepsi, yukarıda belirttiğim gibi  eş zamanlı değil, sıralı bir şekilde yapılıyor. Bilgisayar dosyaların belli bir kısmını kopyalayıp, hemen internet sayfalarını belli kısmını yükleyip ve ardından Saat'i güncelliyor (sıralarına aldırmayın), bu işlemleri saniyenin binde biri olan milisaniyelik farklarla yapıyor ve bu sebeple fark etmiyorsun.

-> Şimdi Thread kullanımına gelelim, öncelikle class'ımıza Runnable'a implement etmemiz lazım ve abstract methodları tanımlamamız lazım.

public void Classımız implements Runnable {

    @Override
    public void run(){
        // Buraya yapılacak işlemler yazılacak...
    }

}

-> Sonrasında bu classı main'de kullanmak için şu şekilde bir işlem yapmalıyız;

public static void main(String args[]){

    Thread degiskenIsmin = new Thread(new Classımız, threadIsmin);
   
    degiskenIsmin.start(); // Threadı başlatmak için.
}

-> Thread methodlarından bir kaçı;
  • start(); Thread'ın run methodunu başlatır, zaten başlamış durumdaysa exception verir.
  • sleep(int milisaniye); Thread'i  yaklaşık olarak aldığı ms. parametresi kadar bekletir.
  • setPriority(int öncelikSayısı); Thread'in yapılma önceliğini verilen parametreye göre ayarlar. 1, 5, 10 (min, norm, max) şeklinde değerler alır. (getPriority de öncelik değerini alır)
  • isAlive(); Thread'ın çalışıp çalışmadığını kontrol eder, çalışıyorsa true döndürür.
  • getName(); Thread'ın ismini döndürür..
  • join(); Thread bitene kadar sadece thread'i çalıştırır.
-> Yok mudur başka kaynak dersen eğer;
  • Buraya tıklayarak 74-75-76-77-78. videoları izleyebilirsin.
  • Buraya tıklayarak, başka bir yazıya göz atabilirsin.
 



Yorumlar

Bu blogdaki popüler yayınlar

NetBeans Kurulumu