Sobes.tech

Golang

Pastāsti par savu pieredzi Tinkoff — kā tu tika nodarbināts un ar ko nodarbojies?

Middle+
КуперКупер
83

func collectRTT(ctx context.Context, urls []string) (map[string]time.Duration, error) { pingMap := make(map[string]time.Duration, len(urls)) var mu sync.Mutex var wg sync.WaitGroup errCh := make(chan error, 1) for _, url := range urls { wg.Add(1) go func(u string) { defer wg.Done() dur, err := rtt(ctx, u) if err != nil { select { case errCh <- fmt.Errorf("RTT kļūda %s, %w", u, err): default: } return } mu.Lock() pingMap[u] = dur mu.Unlock() }(url) } wg.Wait() close(errCh) if err := <-errCh; err != nil { return nil, err } return pingMap, nil }

Senior
СБК ПАРУС
83

Kāda ir galvenā programmēšanas valoda un kādas citas valodas jūs zināt, ieskaitot nekomerciālo pieredzi?

Middle+
Озон банк
83

func (p *Pool) Stop() { p.mu.Unlock() // Tagad ir droši var aizvērt kanālu close(p.tasks) // signāls darbiniekiem: jaunu uzdevumu nebūs, lasiet pārējo p.wg.Wait() // gaidām, līdz visas goroutines pabeigsies p.cancel() // gadījumā atceļam kontekstu fmt.Println("Pool apturēts.") } // ForceStop piespiedu kārtā aptur visus darbiniekus, nesagaidot uzdevumu pabeigšanu. // Darbinieki tiks nekavējoties pārtraukti caur kontekstu. func (p *Pool) ForceStop(timeout time.Duration) { fmt.Printf("Piesaistes apturēšana (laika limits: %v)...\n", timeout) // Bloķē jaunu uzdevumu pievienošanu p.mu.Lock() p.isOpen = false p.mu.Unlock() // Aizver kanālu, lai darbinieki neņemtu jaunus uzdevumus close(p.tasks) // Atceļ kontekstu – tas pārtrauks visus pašreizējos uzdevumus p.cancel() // Dod ierobežotu laiku pabeigšanai done := make(chan struct{}) go func() { p.wg.Wait() close(done) }() select { case <-done: fmt.Println("Pool piespiedu kārtā apturēts (visi darbinieki pabeiguši)") case <-time.After(timeout): fmt.Println("Pool piespiedu kārtā apturēts (laika limits, var palikt pakarēju goroutine)") } }

Senior
Pasul LTD
83

Kam ir paredzēts HAVING un kāpēc ne WHERE?

Senior
OZONOZON
83

Pastāsti man par datu tipus Go.

Middle
RWB
83

Kā mainīt kodu, lai rezultāts būtu 456 vietā 123?

Middle
Ozon FreshOzon Fresh
83

Kādus darījumus pazīsti? Kam tie ir paredzēti?

Senior
Small
83

Tu minēji, ka bija problēmas ar indeksiem — vai vari konkrēti pastāstīt?

Senior
OkkoOkko
83

Kas notiek, lasot no slēgta kanāla Go?

Senior
Магнит Тех
83

Kādas ir atšķirības starp TCP un UDP? Kāpēc HTTPS izmanto TCP?

Middle+
Ozon ФинтехOzon Финтех
83

Vai esat saskāries ar shardinga jēdzienu?

Middle
VKVK
83

Vai jūs zināt fan-in/fan-out un pipeline modeļus? Kas tas ir?

Senior
техвил
83

Vai evakuācijas laikā ir iespējams pievienot vai noņemt elementus kartē?

Senior
VK CloudVK Cloud
83

Kas ir gorutina? Kā tā atšķiras no OS pavediena? Kas pārvalda gorutinas?

Middle+
YadroYadro
83

Kādi ir jūsu algu gaidījumi un vēlamais prezentācijas formāts?

Middle
Nau
83

Cik daudz goroutine var izveidot vienā mašīnā? Kā skaitīt?

Senior
СБК ПАРУС
83

Kāda ir atšķirība starp embedding un composition Go?

Senior
техвил
83

Cik maksimāli TCP savienojumu var turēt vienā serverī?

Senior
ООО Макс
83

Kāda ir algoritma sarežģītība un kur šeit ir koks?

Senior
OkkoOkko
83
/412