# Süreç vs İş Parçacığı

Adres: https://softwaredictionary.org/tr/karsilastirma/process-vs-thread
Son güncelleme: 2026-09-30

Kısaca: Süreç, kendi belleği olan çalışan bir programdır; iş parçacıkları ise bir sürecin içinde çalışıp onun belleğini paylaşır: daha hafif ama koordinasyonu daha zor.

## Süreç (process) ile iş parçacığı (thread) arasındaki fark nedir?

Süreç, çalışan bir programın örneğidir: işletim sistemi ona kendi sanal adres alanını, açık dosyalarını ve diğer kaynaklarını verir. İş parçacığı ise CPU'nun zamanladığı bir komut dizisidir; her süreç bir iş parçacığıyla başlar ve aynı sürecin içinde çalışan daha fazlasını oluşturabilir.

Asıl fark bellek paylaşımıdır. Süreçler yalıtılmıştır; biri çökse ya da hatalı davransa diğerini nadiren etkiler, ama iletişim kurmak için borular (pipe), soketler ya da paylaşılan bellek gibi açık mekanizmalara ihtiyaç duyarlar. İş parçacıkları sürecin heap'ini ve global değişkenlerini paylaşır; bu yüzden veriyi anında alışverişi yapabilir, oluşturmaları ve aralarında geçiş yapmak daha ucuzdur, ama yarış koşullarından (race condition) kaçınmak için kilitlere ya da başka senkronizasyona ihtiyaç duyarlar.

Gerçek uygulamalar ikisini de karıştırır. Bir web tarayıcısı güvenlik ve kararlılık için siteleri ayrı süreçlerde çalıştırır, bu süreçlerin her biri de çizim, ağ ve betikler için birçok iş parçacığı kullanır. Sunucular çoğu zaman CPU çekirdeği başına yaklaşık bir tane olmak üzere birkaç işçi süreci çalıştırır; her biri istekleri bir iş parçacığı havuzuyla ya da bir olay döngüsüyle ele alır.

Sık yapılan bir yanlış, daha fazla iş parçacığının her zaman daha fazla hız anlamına geldiği düşüncesidir. İş parçacıkları yalnızca birden çok çekirdekte gerçekten paralel çalışır ve CPython'un varsayılan derlemesi gibi bazı çalışma ortamlarında global bir kilit, aynı anda yalnızca bir iş parçacığının Python kodu çalıştırmasına izin verir. Çok fazla iş parçacığı da bağlam değiştirmede ve paylaşılan kilitleri beklemekte zaman harcar.

| Özellik | Process | Thread |
| --- | --- | --- |
| Tanım | Kendi kaynaklarına sahip çalışan bir program | Bir süreç içindeki bir yürütme yolu |
| Bellek | Ayrı, yalıtılmış adres alanı | Sürecin belleğini diğer iş parçacıklarıyla paylaşır |
| Oluşturma maliyeti | Daha ağır: yeni bir adres alanı ve kaynaklar | Daha hafif: esas olarak bir yığın (stack) ve yazmaçlar (register) |
| Bağlam değiştirme | Daha yavaş; bellek eşlemesi değiştiği için | Aynı süreç içinde daha hızlı |
| İletişim | Borular, soketler, mesaj kuyrukları, paylaşılan bellek | Paylaşılan değişkenler üzerinden doğrudan |
| Hatanın etkisi | Bir çökme genellikle o süreçle sınırlı kalır | Bir çökme tüm süreci çökertebilir |
| Ana risk | Ek yük ve daha yavaş veri alışverişi | Yarış koşulları ve kilitlenmeler (deadlock) |

## Process şu durumlarda doğru seçim

- Görevler yalıtılmalı, böylece biri başarısız olduğunda diğerlerini çökertmemeli.
- Güvenilmeyen kod çalıştırmak gibi durumlar için bir güvenlik sınırına ihtiyacınız var.
- CPU yoğun işlerin, global kilidi olan bir çalışma ortamında paralel çalışması gerekiyor.

## Thread şu durumlarda doğru seçim

- Görevlerin çok miktarda veriyi hızlıca paylaşması gerekiyor.
- G/Ç'ye bağlı birçok görev için hafif eşzamanlılık istiyorsunuz.
- Arka plan işi sürerken kullanıcı arayüzünü duyarlı tutmanız gerekiyor.

## Sık sorulan sorular

**Bir sürecin birden çok iş parçacığı olabilir mi?**

Evet. Her süreç bir iş parçacığıyla, yani ana iş parçacığıyla başlar ve eşzamanlı çalışan, sürecin belleğini paylaşan daha fazlasını oluşturabilir.

**İş parçacıkları süreçlerden daha mı hızlı?**

İş parçacıklarının oluşturulması ve veri alışverişi, bellek paylaştıkları için daha hızlıdır. Global kilidi olan çalışma ortamlarında CPU'ya bağlı işler için ya da yalıtımın önemli olduğu durumlarda süreçler yine de daha iyi seçim olabilir.

**Bir süreç bittiğinde iş parçacıklarına ne olur?**

Hepsi durur. İş parçacıkları kendi süreçlerinin içinde yaşar; bu yüzden süreç sona erdiğinde ya da çöktüğünde içindeki her iş parçacığı da sona erer.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
