Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Basit olarak Thread ve Process yardımı


Artariel

Öne çıkan mesajlar

C'de okudum ettim Threadler ve Process konusuna geldim. Şöyle basitçene üzerinden geçebilecek var mıdır ? Konuyu okumadan evvel hafif bilgi sahibi olabileyim ki okuduğumu anlayayım

Edit : Genel anlamlarını biliyorum daha çok şunu sormak istiyorum. Ne gibi durumlarda thread, process yaratmam gerekir kullanmam gerekir ?
Link to comment
Sosyal ağlarda paylaş

Etkilerini soyleyeyim.

Process yaratma (zannediyorum fork()'dan bahsediyorsun), Bir processin aynisinin kopyasini alarak (PC, stack degerlerine kadar) ayni anda calistirmasidir.
Soyle dusun, senin bir processin var ve bunun bir memory alani var, diger fork() ile yarattigin process ayni memory alaninin kopyasinda calismaya basliyor, bu su demek, fork() edene kadar olan butun degerler, yaratilanla esit ama fork()'dan sonra her process kendi memory alanini editliyor ve birbirinden bagimsiz oluyor. Linux'te tam bu sekilde degil ama sonuc ayni, sadece COW isimli ekstra bir teknik kullaniyor bunu yapana kadar.

Thread ise soyle, bu bahsettigim memory alani ortak, thread yaratirken gecirdigin memory alanini 2 ortak process kullaniyor ve bu yuzden isler biraz karisiyor, race condition, deadlock gibi kavramlar giriyor (bunlar icin mutex lock ve condition wait/signal gibi yardimci fonksiyonlar sunuyor tabi). Linux'te posix thread ve native linux threads gecerli, uClibc gibi spesifik bi libc kullanmazsan, pthreads gormen zor. Aralarindaki fark senin icin cok onemli olmasa gerek simdilik.
Thread daha kompleks projeler icin onemli ama dizayni ve kullanimi tabiki daha zorlastiriyor.
fork() daha basit isler icin kullanilmasi makul olsada, linux'deki gelismis IPC teknikleri sayesinde cok yaygin, cogu open source projelerde gormen dogal.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...