Golang
Kanal aracılığıyla iletilen veriler okunmadan kalırsa ne gibi sonuçlar olur?
Verimlilik ve kullanım kolaylığı açısından, goroutinelerin thread'lere göre avantajı nedir?
Özel anahtar kelimesiyle bildirilen bir değişkenin erişim alanını ne belirler?
Görev zamanlayıcısının çalışması için hangi parametreler ayarlanabilir?
Kafka'nın saniyede 100 bin mesaja kadar işlenmesini sağlamak için hangi yöntemler kullanılabilir?
Kodda arayüz kullanımının açıkça belirtilmediği durumu nasıl algılıyorsunuz?
Şu anda üzerinde çalıştığın veya yakın zamanda çalıştığın projeden bahset
Go'da dilimler üzerinde hangi işlemler vardır?
Bir Map'ten diğerine öğelerin taşınması sürecine ne denir?
/* Bir kaynaktan bir tüketiciye veri aktarmamız gerekiyor. Kaynak, verileri küçük paketler (~on kayıt) halinde sağlar, oysa tüketici büyük paketlerle (~bin kayıt) daha verimli çalışır. Gerçek bir örnek, Kafka türü kuyruklardan alınan verilerin Clickhouse veritabanına aktarılmasıdır. Kaynak: - Neredeyse sonsuz. - Kaynak, bir Next çağrısında hiçbir zaman MaxItems'ten fazla kayıt döndürmez. - Bir "oturum" (bir Pipe fonksiyon çağrısı) içinde, kaynak her Next çağrısında yeni veriler döndürür. - Ancak, yeniden başlatıldıktan sonra, kaynak önceki "onaylanmış" konumdan, cookie ile belirlenen noktadan başlar. Bu nedenle, Next tarafından döndürülen her cookie değeri, veriler alıcıya kaydedildikten sonra, aynı sırayla Commit çağrısı ile onaylanmalıdır. Alıcı: - Aynı anda MaxItems'ten fazla işleyemez. Temel seviye: İşte, p Producer ve c Consumer fonksiyonlarını kullanarak, kaynaktan veri okuyan, bunları MaxItems boyutunu aşmayan bir tamponda toplayan ve alıcıya kaydeden, ve ardından kayıtlardaki ilerlemeyi onaylayan bir fonksiyon uygulaması gerekmektedir. Zorluk: Next, Process ve Commit metodları ağ çağrılarıyla ilgilidir ve oldukça uzun sürebilir. İşlemi hızlandırmak için, okuma, yazma ve ilerleme onay süreçlerini paralelleştirmek gerekir. Böylece, Process veya Commit çağrısı sırasında, kaynak okuma ve yeni tamponun oluşturulması devam eder. */ const MaxItems = 9999 type Producer interface { // Next şu değerleri döner: // - işlenmek üzere bir öğe grubu // - işleme tamamlandığında onaylanacak cookie // - hata Next() (items []any, cookie int, err error) // Commit, işlenmiş veri paketini işaretlemek için kullanılır Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { // TODO }
Go dilinde select işlemi nasıl uygulanır ve kanallarla nasıl çalışır?
Bir goroutine'in yürütülmesini, belirli bir sistem thread'inde bloklanacak şekilde durdurmak mümkün mü?
Go dili dizisi yerleşik desteğe sahip mi?
Go dilinde hangi soyutlama mekanizması karakterleri veya tokenleri temsil etmek için tasarlanmıştır?
Bir programlama dilinde dilim için sıfır değeri ne anlama gelir?
Go dilinde görevlerin paralel ve ardışık işlenmesi nasıl gerçekleştirilir?
HTTPS bağlantıları kurarken verileri korumak için hangi mekanizmalar ve yöntemler kullanılır?
Map veri yapısında anahtar olarak kullanılmak üzere hangi veri türleri uygundur?
İşletim sisteminde görev zamanlayıcısının çalışma mekanizmasını açıklayabilir misiniz?
Bir hash tablosunun iç yapısı ve çalışma prensibini açıklayabilir misiniz?