Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Java ile Thread Kullanımı
#1
Threadler

Tek bir program akışı içerisinde birden fazla işlemin gerçekleştirilmesi Java'da Thread sınıfıyla mümkündür. Şu ana kadar yaptığımız bütün örnekler ana program akışını takip ederek yapmaları beklenen görevleri sırayla gerçekleştiriyordu. 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 kullanımına bir örnek vermek gerekirse; bir kelime oyunu uygulamasında kullanıcı ana ekranda oyunu oynuyor olsun. Biz ise tam oyunun en heyecanlı yerinde rasgele bir reklam gösterip kullanıcının bütün dikkatini reklama yöneltmek isteyelim . 

Bu amaçla bizim reklamı uzaktaki bir sunucudan çekip ana ekrana basan bir kod parçası yazdığımızı varsayalım. Uzaktan dosya yükleme uzun bir işlem olduğundan bu işlem sırasında oyunu bloke etmememiz gerekir. Bu yüzden Thread mantığını kullanan bir kod yazarak ana akışta hem oyunu hem de yükleme işlemini ilerleterek iki işlemin de mevcut kaynakları paylaşarak kullanmasını sağlayabiliriz. Bu şekilde hem kullanıcı oyununu kesintisiz oynamaya devam eder hem de reklam dosyaları uygulamaya yüklenmiş olur.
NOT: Uzaktan dosya yükleme işlemleri için bu sistemi ileri Android derslerinde sık sık kullanıyor olacağız.

Java'da Thread kullanan bir program örneği ise aşağıda verilmiştir;

Kod:
Kod:
public class MyThread implements Runnable {
private int    end;
private String name; 
public MyThread(String name, int end) {
this.end = end;
this.name = name;
}
@Override
public v o i d run() {
for (int i = 0; i < end; i++) {
System.out.println(name + " : " + i);
               }     
     } 
}



Thread içerisinde gerçekleştirilecek işlemler öncelikle Runnable Interface'ten üretilmiş herhangi bir sınıfta tanımlanabilir. 
Yukarıdaki örnek kodda MyThread adında tanımlanmış bir iş parçacığı görüntülenmektedir. Runnable içerisindeki run metodu içinde 
yapılması gereken işlemler belirtilir. Örnek kod yapıcı (constructor) içinde verilen bir int değeri kadar sayma işlemi yapacak ve bunu konsola 
Thread'e verilen isimle birlikte yazacaktır.

Kod:
Kod:
public class ThreadLesson {
    public static v o i d main(String[] args) {
        Thread thread1 = new Thread(new MyThread("thread1", 6));
        Thread thread2 = new Thread(new MyThread("thread2", 5), "thread2");
        thread1.start();
        thread2.start();
    }
}


MyThread adlı iş parçacığını çalıştırmak için Thread adlı sınıftan faydalanırız. Yukarıdaki örnekte farklı Thread tanımlamaları ve bunların kullanımları görülmektedir. Thread'ler tanımlanırken yapıcı içerisinde Thread'e ait bir isim de verilebilir. Yukarıdaki kodun çıktısı aşağıdaki gibidir;
thread1 : 0
thread2 : 0
thread2 : 1
thread2 : 2
thread1 : 1
thread2 : 3
thread1 : 2
thread2 : 4
thread1 : 3
thread1 : 4
thread1 : 5
Eğitimin alt başlıklarında threadler ile alakalı setPriority methodu ve Executor Sınıfı hakkında anlatımlar ve örnekler yapacağız. 

Kod:
Kod:
package com.company;


Kod:
Kod:
public class Main {


Kod:
Kod:
public static v o i d main(String[] args) {

Thread thread = new Thread()
{
publicv o i d run()
{
//islemler
}
};
}
  }



Javada Thread Örneği

Kod:
Kod:
public class Main 
{
public static v o i d main(String args[]) throws Throwable  
{
new Main().saat();
}


Kod:
Kod:
v o i d saat() throws Throwable
{
for (int i=60; i>=0; i--) {
System.out.println(i + " saniye kaldı.");
         Thread.sleep(1000);
}
}
}


QQk9NV.jpg
Ara
Cevapla }}}}


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 1 Ziyaretçi

Online Shopping App
Online Shopping - E-Commerce Platform
Online Shopping - E-Commerce Platform
Feinunze Schmuck Jewelery Online Shopping