Sobes.tech

Кадари аз имконоти зерин эҳтимолан ба вуқӯъ мепайвандад вақте ки кӯшиш мекунед, ки шумораи хеле зиёди goroutines (масалан, даҳҳо ҳазор) бе назорати иловагӣ оғоз кунед? - Аслӣ мушкилот аз баста шудани mutex глобалӣ дар runtime пайдо мешавад, ки ба қатъ шудани пурраи иҷрои барнома оварда мерасонад - Плангардони Go goroutines-ро дар гурӯҳҳои хурд ба таври пайдарпай иҷро мекунад, бинобар ин афзоиши шумораи онҳо қариб таъсир ба истифодаи хотира надорад - Таҳкими оммавии goroutines метавонад ба истифодаи назаррас аз хотира ва хароҷоти иловагии плангардон оварда расонад; дар чунин ҳолатҳо, истифодаи пули коргарон мувофиқ аст - Агар шумораи goroutines аз шумораи процессорҳои логикӣ зиёд шавад, Go автоматӣ оғоз мекунад, ки оғозҳои навро бо паника рад кунад

Intern
AvitoAvito
85

// მაქსიმალური წყვილი რიცხვის მოძიება 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("მაქსიმუმი %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 }

Middle
WildberriesWildberries
85

// 1-დან 10-მდე რიცხვები func main() { done := make(chan struct{}, 10) for i:=1; i<=10; i++{ go func(){ defer func() {done<-struct{}{}}() printNumber(n) }() } for i:=1; i<=10; i++{ <-done } } func printNumber(n int) { time.Sleep(time.Second) fmt.Println(n) }

Middle+
МВидеоМВидео
85

რა არის pgx-ის უპირატესობები და ნაკლოვანებები?

Middle+
МВидеоМВидео
85

Kafka-ში მომხმარებლის ჯგუფი რა მიზნით გამოიყენება?

Senior
Lanit PPM
85

დატვირთვის ოპტიმიზაციის შესახებ გვიამბეთ: როგორ იპოვეთ პრობლემური კითხვები და რა გააკეთეთ?

Senior
А7
85

რა კონკრეტულად აკეთებდით Postgres-თან — შეკითხვები, ინდექსები?

Senior
OZONOZON
85

რა მოხდება, თუ სისტემის ზარი (syscall) დაბლოკილი იქნება?

Middle+
Servicepipi
85

არის გზა, რომ მართოთ და მორგოთ stop-the-world მტვერსასრუტი Go-ში?

Middle+
WildberriesWildberries
85

// საქონლის სია: // ID | cnt_view // ----------- // 1 | 100 // ორი მომხმარებელი ერთდროულად დაიწყო პროდუქტის ნახვა, რომლის ID = 1 // და ჩვენს ბაზაში დაიწყო 2 პარალელური ტრანზაქცია // რა იქნება შედეგი? postgresql func IncrementView(ctx context.Context, db *sql.DB, id int64) error { tx, err := db.BeginTx(ctx, nil) if err != nil { return err } defer tx.Rollback() var cnt int err = tx.QueryRowContext(ctx, "SELECT cnt_view FROM goods WHERE id = $1", id, ).Scan(&cnt) if err != nil { return err } cnt++ _, err = tx.ExecContext(ctx, "UPDATE goods SET cnt_view = $1 WHERE id = $2", cnt, id, ) if err != nil { return err } return tx.Commit() }

Middle+
Lenta Tech
85

რა გიბიძგებს, რატომ გსიამოვნებს პროგრამისტად მუშაობა?

Senior
МВидеоМВидео
85

რა ლინტერებს იყენებ Go-ში და სად გართმევენ?

Junior
СБК ПАРУС
85

ამ სკრინშოტიდან ინტერვიუის კითხვა/მოვალეობა გამოიღეთ. ორიგინალური ენა შეინახეთ.

Senior
Pasul LTD
85

რატომ წარმოიქმნება ნიუანსები UTF-8-ის სტრიქონის სიგრძესთან დაკავშირებით?

Middle+
Napoleon IT
85

გთხოვთ, ისაუბრეთ თქვენი გამოცდილების შესახებ შეტყობინების ბროკერებთან (Kafka, NATS).

Middle
АО Медиа Эффект
85

მიცემულია S სტრიქონი, საჭიროა ამ სტრიქონში არსებული ყველა სიმბოლოს მინიმუმ ერთხელ შემავალი ქვესაწერიების რაოდენობის გამოთვლა. მაგალითები: "abca" -> 3 // abc, bca, abca "aa" -> 3 // aa, a, a, "ffg" -> 2 // ffg, fg

Senior
Яндекс
85

ელაბუგაში გადასახლებისათვის მზად ხარ?

Senior
Алабуга
85

გეცოდინება, რა არის ტრანზაქცია და რა თვისებები აქვს (ACID)?

Senior
МВидеоМВидео
85

Goroutine-ების უპირატესობები OS-თარების მიმართ რა არის?

Middle+
101ХР101ХР
85

არის თუ არა სერვისების პროფილირება გამოცდილება?

Middle
WildberriesWildberries
85
/412