Ayrı ayrı birkaç kanal üzerinde çalışmak için select nasıl kullanılır?
Golang
Sıralanmış bir listede ikili arama nasıl çalışır?
İşaretçi nedir ve ne kadar ağırdır?
Race condition nedir ve ondan korunmak için hangi yöntemler vardır?
Kubernetes'te probeler (probes) nedir, nasıl yapılandırılır ve hangi türleri vardır?
Bir goroutine ile işletim sistemi thread'i arasındaki fark nedir?
Servise gelenen belge güncellemeleri message Document { string Url = 1; // Belgenin URL'si, benzersiz tanımlayıcısı uint64 PubDate = 2; // belgenin bildirilen yayınlama zamanı uint64 FetchTime = 3; // bu belge güncellemesinin alınma zamanı, sürüm tanımlayıcısı olarak düşünülebilir. Çift (Url, FetchTime) benzersizdir. string Text = 4; // belgenin metni uint64 FirstFetchTime = 5; // başlangıçta yok, doldurulmalı } Belgeler herhangi bir sırayla gelebilir (güncellemelerin yapıldığı sırayla değil), ayrıca mesaj tekrarları da olabilir. Çıkışta, aynı mesajlar oluşturmak gerekiyor, ancak aşağıdaki kurallara göre düzeltilmiş alanlarla (aşağıda belirtilenler, aynı Url alanına sahip belge grubu için geçerlidir): Text ve FetchTime alanları, şu ana kadar alınan en büyük FetchTime'a sahip belgeyle aynı olmalı. PubDate alanı, en küçük FetchTime'a sahip mesajla aynı olmalı. FirstFetchTime alanı, en küçük FetchTime değerine eşit olmalı. Yani, her zaman, FetchTime'a göre sıralanmış ilk versiyondan alınan PubDate ve FirstFetchTime, ve en son versiyondan alınan Text kullanılır. Kodda bu arayüz şu şekilde uygulanabilir: type Processor interface { Process(doc *Document) (*Document, error) } Bu kod, mesajları bir kuyruktan (Kafka veya benzeri) okuyan ve sonucu da kuyrukta yazan bir serviste çalışacaktır. Eğer Process null dönerse, kuyrukta hiçbir şey yazılmaz.
Mutex dışında yarış durumu (race condition) koruma için başka ne kullanılabilir?
Genişletilirken dilim kapasitesi nasıl artar?
Go'daki arayüzler, kalıtımı açıkça belirtmeden çok biçimlilik nasıl sağlar?
isBalanced fonksiyonu boş bir dize için ne döndürmelidir?
Hangi projeleri yönetiyorsun, üst düzey görevler nelerdir — ne yapıyorsun?
Sanal bellek (swap) nedir, ne zaman gerekir ve ne zaman devre dışı bırakılmalıdır?
Go'da kanal nedir ve ana kullanım alanları nelerdir?
İki aşamalı onay (2PC) nasıl çalışır?
Sorgulama yürütülürken indeks ne zaman kullanılmayacak?
İşaretçi nedir ve ne kadar bellek alanı kaplar?
/* Verilen dize, (){} karakterlerini içerir. Giriş dizisinin parantezler açısından dengeli olup olmadığını belirlemek gerekir. */ func isBalanced(s string) bool { // TODO: bunu uygula return false } fmt.Println(isBalanced("()")) // -> true fmt.Println(isBalanced("({()})")) // -> true fmt.Println(isBalanced("(()")) // -> false fmt.Println(isBalanced("(()))")) // -> false fmt.Println(isBalanced("({})")) // -> false
Go projeleri hakkında daha fazla bilgi verin
Linux işletim sisteminin başlatma süreci hakkında bilgi verin: init süreci (PID 1), önyükleyici ve initramfs.