2 puan yazan GN⁺ 2023-07-18 | 1 yorum | WhatsApp'ta paylaş
  • Go için bir korutin paketine neden ihtiyaç duyulabileceğini ve bunun nasıl görünebileceğini tartışan bir yazı
  • Korutinler, farklı stack'lerde eşzamanlı çalışan ve paylaşılan veri ile açık senkronizasyon noktalarını mümkün kılan bir eşzamanlılık deseni
  • Yazıda Lua ve Python'daki korutin örnekleri veriliyor ve iki dil arasındaki farklar vurgulanıyor
  • Korutinler, thread'ler ve generator'lar karşılaştırılırken, korutinlerin paralellik olmadan eşzamanlılık sağladığı belirtiliyor
  • Yazı, Go'da korutin kullanım senaryolarını; korutinlerle generic koleksiyon yinelemesi gibi örnekler üzerinden inceliyor
  • Channel ve goroutine kullanarak Go'da korutinlerin basit bir uygulaması sunuluyor
  • String parser ve asal sayı eleği dahil korutin kullanım örnekleri veriliyor
  • Yazı, Go runtime'ında optimize edilmiş bir korutin uygulamasının olasılığını tartışarak sona eriyor
  • Korutinler, aynı anda çalışan ama paralel olmayan kontrol akışları oluşturmak için kullanılıyor
  • Yazıda korutinler ile goroutine'ler arasındaki fark açıklanıyor
  • Korutinler, veri işleme için pipeline ve filter oluşturmakta kullanılabiliyor
  • Korutinlerle asal sayı eleği gerçekleştirme örneği sunuluyor
  • Yazı, panic işleme ve iptal gibi korutin iyileştirmelerini tartışıyor
  • Örnekler üzerinden, korutinlerin kodu nasıl sadeleştirdiği ve düzenlemeyi kolaylaştırdığı gösteriliyor
  • Yazıda Go programlama dilinde korutinlerin nasıl uygulanabileceği tartışılıyor
  • Korutinler, duraklatılıp devam ettirilebilen hafif thread'lerdir
  • Korutin API'si New, resume, cancel, yield gibi işlevler içeriyor
  • Korutinler, paralellik getirmeden yeni bir eşzamanlılık modeli oluşturmak için kullanılabiliyor
  • Korutinlerin verimliliği farklı uygulamalarla optimize ediliyor
  • Channel tabanlı uygulama, geçiş başına yaklaşık 190ns sürüyor
  • Derleyici tabanlı uygulama, geçiş süresini 118ns'ye indiriyor
  • En verimli uygulama, doğrudan korutin geçişi kullanıyor ve geçiş başına 20ns sürüyor
  • Yazı, performans için korutin optimizasyonunun önemini vurguluyor
  • Korutinler, tekrarlanan değerleri kademeli olarak işlemek için kullanışlı
  • Go'daki korutin uygulaması, geliştiricilere güçlü bir araç sunuyor

1 yorum

 
GN⁺ 2023-07-18
Hacker News görüşleri
  • Go'da işlev yineleyicilerinin kullanım alanları ve bunların for döngüsünde kullanılabilmesi için nasıl yazılacağı tartışılıyor.
  • Bazı yorumcular, önerilen çözümün karmaşıklığı ve okunabilirliği konusunda endişelerini dile getiriyor.
  • Diğerleri, coroutine'lerin bir kütüphane değil dil özelliği olması gerektiğini savunuyor.
  • Coroutine'ler ile green thread'ler arasındaki farklar ve her birinin artıları ile eksileri üzerine bir tartışma var.
  • Bazı yorumcular, Go'da coroutine'lere ihtiyaç olup olmadığını sorguluyor ve goroutine'ler ile blocking channel'ların yeterli olduğunu söylüyor.
  • Yazı ayrıca, yineleyicilerden fayda sağlayabilecek Set gibi yaygın veri yapılarının Go'ya eklenmesi olasılığına da değiniyor.
  • Bu yazının ana noktası, yeni dil yapıları sunmadan Go'da coroutine'lerin verimli biçimde uygulanıp uygulanamayacağını incelemektir.