🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / Java / Multi thread22

 

1-) Java - Multi thread22

 

Şimdi eş zamanlı çalışan birden fazla thread oluşturma işlemini inceleyelim.

Önceki örneğimizde tek thread oluştururken Thread sınıfını genişletmiştik. Şimdi ise java.lang.Runnable Interface'inin kalıtımını alarak işlem yapıyoruz. Bu yöntem, thread oluşturmak için alternatif bir yöntemdir. Sınıflararası kalıtım verilmesi gereken durumlarda, Java sınıfları tek bir sınıftan kalıtım alacağı için bazen Thread sınıfından kalıtım almak imkansız hale gelebilmektedir. Bu durumlarda Runnable interface'i kurtarıcı olarak imdadımıza yetişmektedir.

 

Örnek uygulamamızda Islem isminde bir sınıfımız olsun ve bu sınıfta sonsuz döngüde alt alta işlem adı ve kaçıncı kez döngüde döndüğü bilgileri gösterilsin.

 

Runnable Interface'inin run methodu asıl işlemimizi yapan methoddur.

 

    public class Islem implements Runnable{
     
        
private int sayac = 0;
        
private int islemNo;
     
        
public Islem(int islemNo){
            
this.islemNo = islemNo;
        
}
       
        @
Override
        
public void run() {
            
while(true){
                
System.out.println("Islem " + this.islemNo + " : " + this.sayac++);
            
}
        
}
    
}
 

 

Eş zamanlı 2 işlem çalıştıracağımız için islemNo değişkeni ile hangi işlemde hangi değerin çalıştığını takip edebiliriz.

 

Şimdi bu kodumuzu denemek için main methoduna gidelim.

 

    public static void main(String[] args) throws Exception {
        Islem islem1 = 
new Islem(1);
       
        Islem islem2 = 
new Islem(2);
       
        
Thread thread1 = new Thread(islem1);
        
Thread thread2 = new Thread(islem2);
     
        thread1.
start();
        thread2.
start();
    
}
 

 

Önceki uygulamamızda Hesap sınıfı Thread'den kalıtım aldığı için run (ya da start) diyerek hemen çalıştırdık. Fakat burada Islem sınıfımızdan oluşturacağımız değişkeni önce Thread olarak tanımlamamız gerekmektedir. Bunun için 2 tane Thread oluşturuyoruz.

Şimdi main methodunu çalıştıralım.

Kodumuz sonsuz döngüye girdiği için herhangi bir yerinde durdurup ekran çıktısı aldım. Gördüğünüz gibi Islem2 22167'deyken Islem1 25188. döngüde bulunmakta ve belli bir sistem ile çalışmaktadırlar.

 2021 Ocak 18 Pazartesi
 373