// Surasti didžiausią lyginį skaičių package main import "fmt" func main() { var max int for i := 1000; i > 0; i-- { go func() { if i%2 == 0 && i > max { max = i } }() } fmt.Printf("Didžiausias yra %d", max) } func maxEvent(n, workers int) int { var wg sync.WaitGroup results := make(chan int, workers) jobs := make(chan int, workers) for w := 0; w < workers; w++ { wg.Add(1) go func() { defer wg.Done() localMax := -1 for num := range jobs { if num%2 == 0 && num > localMax { localMax = num } } result <- localMax }() } go func() { for i := 1; i <= n; i++ { jobs <- i } close(jobs) }() go func() { wg.Wait() close(results) }() globalMax := -1 for localMax := range results { if localMax > globalMax { globalMax = localMax } } return globalMax }
Golang
Ar jūsų komandoje yra mobilusis vystymas?
Ar matuoti paslaugų RPS?
Ar pats stebėjote stebėseną ar turite atskirą komandą?
Kokius sinchronizacijos būdus žinote Go kalboje?
Parašykite užklausą, kuri pasirinks darbuotojų vardus, kurie moka SQL ir dar bent vieną kitą kalbą. Laikykite, kad vienas darbuotojas yra vienas vardas.
Ar yra karšta lentelė duomenų bazėje, kuri nuolat skaitoma? Kaip dirbti su indeksais šiuo atveju?
Kaip veikia vietų rezervavimo mechanizmas duomenų bazės lygyje? Kaip užtikrinti, kad viena vieta nebus parduota du kartus?
Kuo skiriasi Go kalbos ypatybės nuo kitų programavimo kalbų?
Ką darote po to, kai ką pataisote?
Pagal kokius kriterijus renkatės įmones, kuo remiatės?
Ar yra būdas valdyti ir reguliuoti stop-the-world šiukšlių surinkėją Go?
Kiek paslaugų skaitė Kafka temą?
Kas vyksta pridedant, jei srities talpa nėra pakankama (naujo masyvo paskirstymas)?
Jei URL yra 500-1000, ar visi GET užklausos bus vykdomi lygiagrečiai?
Kaip stebėti sistemos veikimo teisingumą (monitoringas)?
Ar kanalo buferio dydis turi įtakos ką nors worker pool'e?
Kokias užduotis atlikote projekte iš savo pusės?
Kas yra interfeisai Go? Kam jie reikalingi? Kaip jie sukonstruoti po gaubtu?
Kaip įgyvendinti žinučių siuntimą gRPC paslaugoje?