

Mehraba Javada Thread nedir? Bir tane de örnekle anlatırsanız çok iyi olur.Teşekkürler
soruldu: 15 Eki '12, 11:23
Serxan


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:
Bu sınıfı kullanan ana sınıf kodu:
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.
cevaplandı: 15 Eki '12, 12:31
numankaraaslan


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...
cevaplandı: 21 Eki '12, 16:55
serdarb