ozztech_logo_white

Thread ve Process

Process

Bilgisayarların yürüttüğü programların çalışabilmesi için belleğe ve çeşitli işletim sistemi kaynaklarına ihtiyacı vardır.

“Process” ihtiyaç duyulan bütün kaynaklarla beraber belleğe yüklenmiş bir programdır. Process’lerin ihtiyaç duyduğu kaynaklar; Registers, Counter ve Stack’tir.

Register: Kayıt, saklama adresi gibi verileri tutabilir.

Counter: Bilgisayarın program esnasında nerede olduğunu inceler.

Her process’in ayrı bir bellek adresi bulunmaktadır. Bunun anlamı da her işlemin birbirinden izole olarak çalıştığıdır. Yani kısaca her Process çalışırken yalnızca kendisini çalışıyor zanneder. Diğer işlemler tarafından paylaşılan verilere doğrudan bir şekilde erişememektedir.

Bu izole olma durumu aslında çok önemlidir. Çünkü izole olması demek bir işlemdeki oluşmuş olan bir sorunun diğer işlemleri de bozmasını ya da zarar vermesini engellemektedir.

Thread

Threadler aynı Process de birden çok işlemin yürütülmesine imkan tanımaktadır. Bir Process çalışmaya başladığı anda direkt olarak bir Thread oluşturulur Bu Thread Main Thread’dir. Bir Process içerisinde birden fazla Thread de bulunabilmektedir. Bu gibi durumlara da Multi – Thread denmektedir. Oluşturulmuş olan bu Threadler aynı network de ya da farklı networklerde işlem yapabilmektedirler.

Threadler iş parçacıklarıdır. Çoklu görevlerde senkronizasyonu sağlamak için kullanılırlar. Threadler aynı anda aynı bölgeye girerse deadloclar meydana gelebilir. Tek Thread kullanıldığı zaman  bir işlem yaparken başka herhangi bir işlem yapılamamaktadır. O işlem bitene kadar başka kod çalışamaz. Ama Multithreading ile aynı anda birçok işlem yapılabilmektedir.

Threadlerin kullanımı avantajlı gibi görünse de her zaman avantajlı olmamaktadır. Etkili bir şekilde kullanılmadığı zamanlarda program hızını arttırmak yerine yavaşlatabilir.

Threading işlemlerini yöneten tipler System.Threading kütüphanesindedir.

Start(): Thread sınıfının en temel metodudur. Threadlerin çalışmasını başlatır.

Sleep(): Bu metod ile threadlerin çalışmasını bir süre bekletebilmemiz sağlanmaktadır.

Thread Pool

Thread Poool’un amacı sistemdeki bulunan Threadleri kontrol altında tutabilmek ve yaratılmış olan Threadlerin işi bittikten sonra Threadleri sonlandırmak yerine sonradan tekrar kullanabilmek için bekletmektir. Bir Thread Pool yaratıldığında belli sayıda Thread de yaratır. Yapılacak olan işler gelene kadar yaratılmış olan Threadleri bekletir. Yapılacak olan işler sıraya girdikçe boşta bulunan Thread’lerden birisi uyanıp işi yapar. İşi bitirdikten sonra tekrar bekleme durumuna döner.

Thread Pool yapısı gereği belirli sayıda Thread bulundurmaktadır. Belirli sayıda Thread bulunduracağından dolayı tüm işlerin belirli bir düzen içerisinde ilerlemesi gerektiğinden her şey sıraya koyulur. Bunun için de senkron bir queue yapısı kullanılmaktadır.

İlginizi Çekebilecek Makaleler​

Message Broker Nedir?

Message broker, birçok farklı uygulama veya sistem arasında iletişim kurmak için kullanılan bir yazılım aracıdır. Bu araç, bir uygulama tarafından gönderilen mesajları bir veya daha

Devamı »
Loglama Nedir?

Loglama, bilgisayar sistemlerindeki olayları, hataları ve diğer önemli durumları kaydetme işlemidir. Bu kayıtlar, sistem yöneticileri ve geliştiriciler tarafından, sistemlerin işleyişini anlamak, hataları tespit etmek ve

Devamı »
Vcenter Üzerinden ESXI Upgrade’i Nasıl Yapılır?

Öncelikle herkese merhaba arkadaşlar, sizlere Vcenter üzerinde ESXI hostunuzu nasıl upgrade edeceğinizi anlatacağım. Öncelikle hangi versiyona yükselteceksek o versiyonun ISO dosyasını indiriyoruz. Ardından Vcenter’ımızı açıyoruz.

Devamı »
.OrianaLOG Nedir?

.OrianaLOG Nedir? ve Ne işe Yarar?  .OrianaLOG bir sistem veya uygulamanın çalışması sırasında oluşan log (kayıt) dosyalarının toplanması, depolanması, analiz edilmesi ve incelenmesine olanak sağlayan bir

Devamı »