структуру буду инициировать в примерно в тысячи горутинах две на каждую рутину. Стековерфлов мне обеспечен?
                  
                  
                  const THREADS = 3
                  
                  
                  const BufferSize = 14560
                  
                  
                  
                  
                  
                  type chunk struct {
                  
                  
                    buffer    [THREADS * BufferSize]byte
                  
                  
                    size      int
                  
                  
                    pointer   int
                  
                  
                    error     error
                  
                  
                    wg        sync.WaitGroup
                  
                  
                    receivers [THREADS]*http.Client
                  
                  
                  }
                  
                  
                  
                  
                  
                  func newChunk(dial func(network, addr string, tlsCfg *tls.Config, cfg *quic.Config) (quic.EarlySession, error)) chunk {
                  
                  
                    chk := chunk{
                  
                  
                      size:    0,
                  
                  
                      pointer: 0,
                  
                  
                      error:   nil,
                  
                  
                    }
                  
                  
                    for i := 0; i < THREADS; i++ {
                  
                  
                      cli := http.Client{
                  
                  
                        Transport: &http3.RoundTripper{
                  
                  
                          QuicConfig: &quic.Config{
                  
                  
                            KeepAlive: true,
                  
                  
                          },
                  
                  
                          Dial: dial,
                  
                  
                        },
                  
                  
                      }
                  
                  
                      chk.receivers[i] = &cli
                  
                  
                    }
                  
                  
                    return chk
                  
                  
                  }
                  
                  
                
Если у вас включен своп в системе, если я правильно помню, то рантайм его начнёт утилизировать жёстко, если превысит количество доступной физической памяти. Сама горутина занимает что-то около 2.5 кбайт, где 2кбайта это изначально аллоцированный стек Здесь можно подробнее прочитать https://dave.cheney.net/2013/06/02/why-is-a-goroutines-stack-infinite
 Дмитрий
                          Бондаренко
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Дмитрий
                          Бондаренко
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  в кучу пойдет скорее всего.
Обсуждают сегодня