# Thread (İş Parçacığı)

Adres: https://softwaredictionary.org/tr/terimler/thread
Kategori: İşletim Sistemleri
Son güncelleme: 2026-09-30
Okunuşu: tred

Kısaca: Thread, işletim sisteminin zamanlayabileceği en küçük yürütme birimidir; bir process içinde çalışır ve o process'in belleğini diğer thread'lerle paylaşır.

## Thread (iş parçacığı) nedir?

Thread, CPU'nun yürüttüğü tek bir komut dizisidir. Her process tek bir ana thread ile başlar ve bir program, bir dosya indirirken kullanıcı arayüzünü duyarlı tutmak gibi birkaç görevin aynı anda ilerleyebilmesi için daha fazla thread oluşturabilir.

Her thread'in kendi yığını (stack), program sayacı ve yazmaç değerleri vardır; ancak bir process'teki tüm thread'ler aynı heap belleğini, global değişkenleri ve açık dosyaları paylaşır. İşletim sistemi zamanlayıcısı thread'ler arasında geçiş yapar ve çok çekirdekli bir CPU'da birkaç thread gerçekten paralel çalışabilir. Thread'ler belleği paylaştığı için aynı veriyi aynı anda güncelleyen iki thread bir yarış durumuna (race condition) yol açabilir; bu yüzden programlar erişimi koordine etmek için kilitler, mutex'ler ve diğer senkronizasyon araçlarını kullanır.

Process'i paylaşımlı bir mutfak, thread'leri de orada çalışan aşçılar olarak düşünün. Aşçılar aynı buzdolabını ve tezgâhı paylaşır; bu iş birliğini hızlı kılar, ancak tek keskin bıçak için sırayla davranmaları gerekir yoksa birbirlerinin işine engel olurlar. Thread'ler çok sayıda isteği karşılayan web sunucularında, render'ı fizikten ayıran oyunlarda ve arka planda iş yapan uygulamalarda kullanılır.

Thread'ler çoğu zaman process'lerle ve asenkron kodla karıştırılır. Process'in kendi yalıtılmış belleği vardır, bir process içindeki thread'ler ise belleği paylaşır. `Node.js`'te olduğu gibi bir olay döngüsüyle (event loop) yapılan asenkron programlama, çok sayıda görevi paralel çalıştırmak yerine I/O için beklerlerken aralarında geçiş yaparak tek bir thread üzerinde idare edebilir.

## Önemli noktalar

- Thread, bir process içinde yaşayan yürütme birimidir.
- Aynı process'teki thread'ler belleği paylaşır, ancak her birinin kendi yığını vardır.
- Birden fazla thread, çok çekirdekli bir CPU'da paralel çalışabilir.
- Paylaşımlı bellek yarış durumlarını mümkün kılar; bu yüzden kilit gibi senkronizasyon gerekir.
- Thread'ler oluşturması ve aralarında geçiş yapması process'lerden daha ucuzdur.

## Örnek: Python'da işi birkaç thread'de çalıştırmak

```python
import threading

def worker(name):
    print(f"Thread {name} is running")

threads = [threading.Thread(target=worker, args=(i,)) for i in range(3)]

for t in threads:
    t.start()  # Begin running worker() in a new thread

for t in threads:
    t.join()   # Wait for each thread to finish

print("All threads done")
```

## Sık sorulan sorular

**Multithreading (çoklu iş parçacığı) nedir?**

Multithreading, tek bir programın görevleri eşzamanlı yürütmek için birden fazla thread kullanmasıdır. Duyarlılığı artırır ve çok çekirdekli CPU'larda işi hızlandırabilir, ancak yarış durumlarından ve deadlock'lardan kaçınmak için dikkat gerektirir.

**Thread, process'ten daha hızlı mıdır?**

Thread'ler bellek ve kaynakları paylaştığı için thread oluşturmak ve aralarında geçiş yapmak genellikle process'lere göre daha ucuzdur. Ancak process'ler daha güçlü yalıtım sunar; birinin çökmesi diğerlerini düşürmez.

**Yarış durumu (race condition) nedir?**

Yarış durumu, bir programın sonucunun paylaşılan veriye erişen thread'lerin öngörülemeyen zamanlamasına bağlı olması durumudur. Genellikle veriyi aynı anda yalnızca bir thread'in değiştirmesi için kilitler ya da atomik işlemlerle önlenir.

---

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