Mehraba Javada Thread nedir? Bir tane de örnekle anlatırsanız çok iyi olur.Teşekkürler

soruldu: 15 Eki '12, 11:23

Serxan's gravatar image

Serxan
51691106107
cevap kabul oranı: 46%


Soru aslında çok genel yani javada thread var ama thread genel bir kavram. Thread bir eş zamanlı çalışma mantığıdır. Örneğin bir şehre su verilecek. Suyun kaynağından tek bir bağlantı ile şehre bağlanmasındansa birden çok bğlantıyla paralel olarak bağlanması verimi arttıracak ve suyun ulaştırılma süresini azaltacaktır. Bu işlem beraberinde senkronizasyon sorunları ve thread management ve semafor kavramlarını da getirmektedir. Programlama yapılırken birden fazla thread oluşturularak hız kazandırılabilir. örneğin 100 e kadar olan sayıları toplarken bir thread 0 dan 50 ye kadar sayıları toplar x değişkenine atar, ikinci thread ise 50 den 100 e kadar olan sayıları toplar y değişkenine atar ve sonuç x ve y nin toplamı olur. Bu şekilde 2 kat hız kazanmış olurlar. Ancak bazı durumlarda iki thread aynı değişkene yazmak zorunda olabilir. Bu durumu kontrol için semafor dediğimiz değişkenler kullanılabilir. Örneğin "sonuç" isimli değişken semafor olarak tanımlanabilir Semaforlara ise aynı anda sadece bir thread yazma işlemi yapabilir bu şekilde iki thread çakışmamış olur. Javada yazılmış bir thread örneği:

class SimpleThread extends Thread {
public SimpleThread(String str) {
super(str);
}
public void run() {
for (int i = 0; i < 10; i++) {
    System.out.println(i + " " + getName());
        try {
    sleep((int)(Math.random() * 1000));
    } catch (InterruptedException e) {}
}
System.out.println("DONE! " + getName());
}
}

Bu sınıfı kullanan ana sınıf kodu:

class TwoThreadsTest {
public static void main (String args[]) {
    new SimpleThread("Jamaica").start();
    new SimpleThread("Fiji").start();
}
}

Yukarıdaki kodlarla thread sınıfından kalıtımla "SimpleThread" sınıfı yazılmış ve iki farklı isimle new yapılıp iki thread oluşturulmuştur. Her thread kendi ismini ve yaptığı işi yazmaktadır.

permanent link

cevaplandı: 15 Eki '12, 12:31

numankaraaslan's gravatar image

numankaraaslan
1.8k253749
cevap kabul oranı: 19%

Teşekkürler.Peki threadin timerden farkı nedir?

(15 Eki '12, 14:06) Serxan Serxan's gravatar image

timer sadece zamanlama aracıdır bildiğim kadarıyla. timer içinde yazdığınız kodlar arka planda yani farklı bir thread üzerinde çalışıyor anlamına gelmez. Ama timer kendi kendini otomatik olarak arttırmak için bir thread başlatacaktır.

(15 Eki '12, 14:21) numankaraaslan numankaraaslan's gravatar image

bir blogda görmüştüm. bu soruyı biraz daha güzelleştirmek adına eklemeli bunu buraya...

Describe the difference between a Thread and a Process? http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx http://stackoverflow.com/questions/200469/what-is-the-difference-between-a-process-and-a-thread

bu soru karşımıza "Process ve Thread arasındaki fark nedir?" diye de çıkabilir...

cümle içinde kullanıcak olursak şöyle bir cümle kurulabilir.

Bir uygulama bir veya daha çok "process"'den oluşabilir. "Process" basitçe çalışan programdır da diyebiliriz. Bir process bir veya daha çok "Thread" den oluşabilir.

windwos'da task manager'ı açtığımızda processler diye bir sekme var. ordaki process'lerde o an çalışan programları görürüz. her bir program bir veya daha çok "thread" kullanarak gerekli işlerini yapıyor olabilirler...

permanent link

cevaplandı: 21 Eki '12, 16:55

serdarb's gravatar image

serdarb
13124
cevap kabul oranı: 8%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×31

Soruldu: 15 Eki '12, 11:23

Görüntüleme: 3,641 kez

Son güncelleme: 21 Eki '12, 16:55

powered by BitNami OSQA