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

Goда stop-the-world калдык чогултуучу башкаруу жана жөнгө салуу жолдору барбы?

Middle+
WildberriesWildberries
85

// товарлар таблицасы: // ID | cnt_view // ----------- // 1 | 100 // эки колдонуучу бир убакта 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