Junior — Middle
Projelerinizde kaynak rekabetini yönetmek için semafor mekanizmasını kullandınız mı?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, semafor mekanizması, çok iş parçacıklı uygulamalarda sınırlı kaynaklara erişimi yönetmek için sıklıkla kullanılır. Örneğin, iOS'ta DispatchSemaphore kullanılarak aynı anda çalışan görevlerin sayısı sınırlandırılabilir.
DispatchSemaphore kullanım örneği:
let semaphore = DispatchSemaphore(value: 2) // aynı anda 2 görev izin verilir
DispatchQueue.global().async {
semaphore.wait() // sayacı azaltır, 0 ise bekler
// kritik bölüm
print("Görev başladı")
sleep(2) // çalışma simülasyonu
print("Görev tamamlandı")
semaphore.signal() // sayacı artırır
}
Bu yaklaşım, yarış koşullarını önlemeye ve sınırlı kaynaklarla çalışırken yarışmayı kontrol etmeye yardımcı olur, örneğin, veritabanına erişim veya ağ istekleri sırasında.