Merhaba,
Bu yazımda threadler hakkında genel bilgi vereceğim.
Thread : Bir process’in her farklı akışına thread adı verilir. Process çalışmaya tek bir adı main olan threadle başlar. Diğer threadler çalışma sırasında sistem fonksiyonları ile oluşturulur. Procesin bir threadi bloke olsa bile diğer threadler ondan bağımsız olarak çalışmaya devam eder. Sistem tek işlemcili ise threadler zaman dilimleri şeklinde çalışır ve eş zamanlı olarak çalışıyormuş gibi olur. Fakat çok işlemcili ise sistemlerde farklı threadlerde farklı işlemciler üzerinden eş zamanlı olarak çalışabilir.
Threadler çeşitli kütüphane ve ortamlarda onların sundukları fonksiyon yada sınıflarla oluşturulabilir.
Örneğin : .Net’te
Thread t = new Thread(ThreadStart(ThreadProc));
t.Start();
Threadler çalışmasını bağlı fonksiyon geldiğinde thread’de sonlanır. İşletim sistemi fonksiyonlarıyla thread kendini sonlandırabilir. Bir thread başka bir thread’di de sonlandırabilir. Process sonlanırsa tüm threadler otomatikmen sonlanır.
Threadler genelde arka plan işlemlerinin yürütülmesi , işlemleri hızlandırmak ve paralel programlama yapmak için kullanılır. Paralel programlama ; birden fazla çekirdeğe sahip olan işlemcilerde programların farklı threadlerinin aynı anda çalışması demektir.
*Ortak bir amacı gerçekleştirmeye çalışan threadlerin duruma göre birbirini beklemesi gerekebilir. Bu duruma thread senkronizasyonu denir.
*Threadler istenilen çekirdeklere atanabilmektedir. Bu konuya processor affinity denilmektedir.
*Threadlerin işletim sistemi tarafından nasıl çizelgelendiği sistemden sisteme değişmektedir. Buna thread çizelgelemesi denir.
*Bazen kısa süreli çok sayıda threadler oluşturmak gerekebilir. Bu durumlarda thread pool kullanılır.
*Thread öncelikleri belirlenip bir thread çalışırken diğer threadler bekletilebilir.
Threadler hakkında genel olarak bahsetmiş bulunmaktayım. Umarım yararlı olur.
İyi çalışmalar.